作业要求
https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502
函数6-1统计个位数字
1实验代码
1 #include2 3 int Count_Digit ( const int N, const int D ); 4 5 int main() 6 { 7 int N, D; 8 9 scanf("%d %d", &N, &D);10 printf("%d\n", Count_Digit(N, D));11 return 0;12 }13 int Count_Digit ( const int N, const int D )14 {15 int x,count=0,y;16 x=N;17 if(x<0)18 {19 x=-x;20 }21 do{22 y=x%10;23 if(y==D)24 {25 count++;26 }27 x=x/10;28 }while(x>0);29 return count;30 }
2解题思路
1如果给出的N是负数要转化为正数
2将该数N不断除以10得出每一位的数值y
3得出的数值y如果等于D,那么该数D出现的次数就+1
流程图
3.本题调试过程碰到问题及解决办法
1一次就过
2调试
数组1 7-4 求一组数中的最大值和次最大值
实验代码
1 #include2 int main () 3 { 4 int a[11]; 5 int max,cmax,i,j,k,temp; 6 for(i=1;i<=10;i++) 7 { 8 scanf("%d",&a[i]); 9 }10 for(j=1;j<10;j++)11 {12 for(i=1;i<10;i++)13 {14 k=i+1;15 if(a[k]
2解题思路
将所给的数据进行排序,最后一个数是最大值,倒数第二个数是最小值。
流程图
3.本题调试过程碰到问题及解决办法
1答案错误
解决办法,数组应该是从a[0]开始存储数据
单步调试
数组2 7-1 简化的插入排序
1插入代码
1 #include2 int main () 3 { 4 int a[11]; 5 int n,max,cmax,i,j,k,temp; 6 scanf("%d",&n); 7 for(i=1;i<=n;i++) 8 { 9 scanf("%d",&a[i]);10 }11 scanf("%d",&a[n+1]);12 for(j=1;j
2解题思路
定义一个数组a[n+1],其中n为题中所给的非负整数,将第三行给的X赋值给a[n+1],然后进行排序。
流程图
3.本题调试过程碰到问题及解决办法
解决办法:错误提示中提到最大N,最大N为10,但是数组只能到10,也就是说不存在a[11]来存储X的值,所以,将数组扩大为a[11].
个人总结:相对于前一段时间来讲,我认为学习简单了许多,就好像是一种突然开窍的感觉,这几周学习了函数,数组及其相关知识点,学会了怎样储存数据,怎样去定义函数。
对我来讲的话,函数部分的如何去定义函数是一个难点,因为我们所接触的语句,还有函数相关的题目并不多,措施就是尽力去理解每个函数题目是如何展开的。数组的排序法
是个难点,经常整不明白轮数与趟数,所以平时在课下可以自己去定义一个数组然后去排序,不懂的话找资料问老师与同学。
点评
表格
折线图