第二次作业
https://www.cnblogs.com/z-x-c2429657075-/p/10111309.html
函数.统计个位数字:
int Count_Digit ( const int N, const int D )//接口定义 { int n = abs(N), m = 0;//定义初始值 if(D == 0 && n == 0) return 1;//如果n=0,则输出1 while(n != 0)//当n不等于0 { if(n % 10 == D) m++;//n对10取余为D,m=m+1 n /= 10;//n=n/10 } return m;//输出m }
过程描述:接口定义,定义初始值,判断n是否等于0,如果等于0则输出1,如果不等于0则进入while循环m++,n/=10.
错误提示:最后结束时要输出的是m而不是0.
改正方法:看前面定义要输出的是什么,把0改成m.
数组.最高分 最低分 平均分:
#include<stdio.h> int main() { int a[6];//定义6位数组 int i,max,min,avg;//定义初始变量,最大,最小,平均 for(i=0;i<=5;i++){ scanf("%d",&a[i]); } avg=max=min=a[0];//定义初始值 for(i=1;i<=5;i++)//添加for循环,设定输出量 { if(a[i]<min)//添加循环if,判断数组【i】和min的大小 { min=a[i]; } if(a[i]>max)//判断数组i和max的大小 { max=a[i];//对max赋值 } avg=avg+a[i];//平均值为avg+a[i] } avg=avg/6;//最后求出平均值 printf("max:%d\n",max);//求出三个值 printf("min:%d\n",min); printf("avg:%d\n",avg); return 0; }
过程描述:定义一个6个数的数组,对max,min,avg进行赋值。添加for循环,设定输出量,并求出对最小值,最大值进行赋值求结果,最后求出平均值,输出。
错误提示:把最后求平均数时的式子写在了for循环里面,导致输出时平均值一直在for里面出不来,不能作为一个整体来除以6,结果一直是15。
改正方法:把avg=avg/6从for循环里移除,挪到for循环括号外面。就可以输出平均值了。
数组2:求整数序列中出现次数最多的数
#include<stdio.h> #include<math.h> int main() { int i, j, n, max, a[1010], b[1010]={};//定义数组a,b scanf("%d", &n);//输入n个数 for(i = 0; i < n; i++) scanf("%d", &a[i]); for(i = 0; i < n; i++)//进入for循环 for(j = 0; j < n; j++) if(a[i] == a[j])//判断数组a[I]是否等于a[j] b[i]++;//b[I]++ max = b[0], j = 0; for(i = 0; i < n; i++)//多次输入求次数 if(b[i] > max) { max = b[i]; j = i; } printf("%d %d\n", a[j], max); return 0; }
过程描述:定义数组a[i],b[i]。输入n个数,a[j]为最多的数,利用for循环输出最多的值,再利用for循环求出b[i]次数。
错误截图:
错误提示:在求最多项次数时,没有再起一个循环,导致没有重复多次而出错。
改正方法:在if(b[i] > max)前加一个for循环,以输出最多项次数。
总结学习收获:在这几周的时间里,我学习了函数的运算和一维数组的运用,并写了大量的代码,并在课余时间小学了一会数据库的知识和html,所以收获还是
比较大的。
总结难点:在这几周里,在学习函数时,在设未知数后不知道该如何运用。在学习数组时,总是按照之前的方法最后输出return 0;所以从来都不对。
改正方法:在写函数时多注意一下前后的逻辑关系,写数组时到最后时看清输出。
周数 | 此周代码行数/行 | 码代码所用时长/h | 所写博客字数/字 | 写博客所用时长/h | 所涉及的知识点 |
13 | 2500 | 14 | 0 | 0 | 函数的性质和特点 |
14 | 2500 | 15 | 0 | 0 | 函数的计算 |
15 | 2500 | 14 | 0 | 0 | 一维数组的运算 |
16 | 2500 | 13 | 1200 | 6 | 数组的性质 |