• C语言博客作业--函数嵌套调用


    一、实验作业

    1.1 PTA题目:十进制转换二进制

    设计思路

          输入一个数,除二取余法
          定义num为余数 
    	  先取余 num=n%2 
    	  由于二进制的是自下往上写余
    	  if(n<2) 输出num;
    	  否则n/=2;
    	  继续递归,printf("%d",num); 
    

    代码截图

    调试问题

    一开始我是用了直接取余,及自上往下写余,与答案相反,后面思索一下,使用递归返回来了。

    1.2 学生成绩管理系统

    1.2.1 画函数模块图,简要介绍函数功能。

    1.2.2 截图展示你的工程文件

    1.2.3 函数代码部分截图

    1.2.4 调试结果展示

    我的在平均分和总分那边一直是0,我始终调不出来,我想在老师让同学讲解后在在解决这个问题。

    二、截图本周题目集的PTA最后排名。

    三、阅读代码

    #include <stdio.h>//递归法对任意10个数据按降序排序
    int a[20];
    void f(int n)
    {
    	int i,t;
    	if(n<10)
    	{
    		f(n+1);
    		t=a[n];
    		for(i=n+1;i<=10;i++)
    			if(t>a[i])
    				a[i-1]=a[i];
    			else
    				break;
    		a[i-1]=t;
    	}
    
    }
    int main()
    {
    	int i;
    	for(i=1;i<=10;i++)
    		scanf("%d",&a[i]);
    	f(1);
    	for(i=1;i<=10;i++)
    		printf("%d ",a[i]);
    	printf("
    ");
    	return 0;
    }
    

    它使用了递归的方法,将数值比较,f(n)是对第n个数字到第10个数字排序的函数,
    递归调用f(1)到f(10),f(10)是对第10个数字进行排序,而一个数字不需排序,所以
    f(10)为终点,f(i)在f(i+1)已执行的情况下,即第i+1个数字到第10个数字已排好序的
    情况下进行,只需将a[i]按顺序插入第i+1个数字到第10个数字之间就行了。

    四、本周学习总结

    1.介绍本周学习内容

    本周学习了递归这个函数结构,他可以解决一系列嵌套问题,
    还学习了二级指针,二级指针的第一次指向是指向一级指针
    的地址,二级指针也相当于二维数组那样用来储存些信息,
    malloc()函数是用来申请空间,最后一定要释放,这样就大
    大节省了空间使用,还学了大程序构成。

    • 宏定义:
      define 标识符 字符串
      使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。
      预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。
      宏定义末尾不加分号。
      宏定义可以嵌套。
    • 二级指针:
      二级指针是第一次是指向一级指针的地址。
      二级指针作为函数参数的作用:在函数外部定义一个指针p,在函数内给指针赋值,函数结束后对指针p生效,那么我们就需要二级指针。

    2.学习体会。

    关于大程序构成和链表我感觉特别的复杂,这周的上机考试没能够做完,
    还有在上机填空第二题一开始感觉全都是不会的,后面想了一想,还是
    不对,随着时间的推移,课程不断变难,接下来这段时间需要好好复习,
    迎接期末考。

  • 相关阅读:
    安全实践鬼手诀 杂志
    Android 应用资源随笔
    Android 构架
    Andorid杂笔 深入理解Activity,Intenthe IntentFilter
    Android杂笔 事件处理
    创建9-Patch自定义伸缩图片
    重拾C之语句,操作符和表达式
    CSS float属性
    最近最少使用队列算法
    java常见面试题
  • 原文地址:https://www.cnblogs.com/gongshunde/p/8150653.html
Copyright © 2020-2023  润新知