第二次作业

作业要求

https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502

函数6-1统计个位数字

1实验代码

 1 #include <stdio.h>
 2 
 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 #include<stdio.h>
 2 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]<a[i])
16             {
17                 temp = a[i];
18                 a[i] = a[k];
19                 a[k] = temp;
20             }
21         } 
22     }
23     printf("max=%d,cmax=%d",a[10],a[9]) ;
24     return 0;
25 }

2解题思路

 将所给的数据进行排序,最后一个数是最大值,倒数第二个数是最小值。

流程图

 

3.本题调试过程碰到问题及解决办法

 1答案错误

解决办法,数组应该是从a[0]开始存储数据

单步调试

 

数组2   7-1 简化的插入排序

 1插入代码

 1 #include<stdio.h>
 2 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<n+1;j++)
13     {
14         for(i=1;i<n+1;i++)
15         {
16             k=i+1;
17             if(a[k]<a[i])
18             {
19                 temp = a[i];
20                 a[i] = a[k];
21                 a[k] = temp;
22             }
23         } 
24     }
25     for(i=1;i<=n+1;i++)
26     printf("%d ",a[i]);
27     return 0;
28 }

2解题思路

定义一个数组a[n+1],其中n为题中所给的非负整数,将第三行给的X赋值给a[n+1],然后进行排序。

流程图

 

3.本题调试过程碰到问题及解决办法

解决办法:错误提示中提到最大N,最大N为10,但是数组只能到10,也就是说不存在a[11]来存储X的值,所以,将数组扩大为a[11].

 

 

个人总结:相对于前一段时间来讲,我认为学习简单了许多,就好像是一种突然开窍的感觉,这几周学习了函数,数组及其相关知识点,学会了怎样储存数据,怎样去定义函数。

对我来讲的话,函数部分的如何去定义函数是一个难点,因为我们所接触的语句,还有函数相关的题目并不多,措施就是尽力去理解每个函数题目是如何展开的。数组的排序法

是个难点,经常整不明白轮数与趟数,所以平时在课下可以自己去定义一个数组然后去排序,不懂的话找资料问老师与同学。

 

点评

 张学健

 韩佳勒

王恩临

 

表格

折线图

 

posted @ 2018-12-21 16:27  杨仕奇  阅读(208)  评论(7编辑  收藏  举报