第1次作业

一分支结构中题目7-7计算火车运行时间

1实验代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int m,n,x,y;
 5     scanf("%d%d",&m,&n);
 6     m=m/100*60+m%100; 
 7     n=n/100*60+n%100;
 8     x=(n-m)/60;
 9     y=(n-m)%60;
10     printf("%02d:%02d\n",x,y);
11     return 0; 
12 } 

2设计思路

(1)第一步:按照题目要求定义火车出发与到按时间(m与n)

         第二步:定义火车到达的小时与分钟(x与y)

         第三步:将出发与到达的小时全部换算成分钟(m/100*60+m%100;n/100*60+n%100)

    第四步:换算后重新赋值给m与n

    第五步:计算到达的总分钟数减去出发的总分钟,即行程分钟数(n-m)

    第六步:行程分钟数除以60就是所用小时(x)取余60就是剩余分钟数(y)

    第七步:最后输出x与y并且用“:”分隔且都为两位数

(2)流程图

 

 

          

 

 

 

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

(1)

  

(2)解决方法

1将mian改为main

2 scanf("%d%d",m,n);加上&,,scanf("%d%d",&m,&n);

3加换行符号printf("%02d:%02d\n",x,y);

二 循环1统计学生平均成绩与及格人数

1实验代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,i,a,count=0,sum=0;
 5     double average;
 6     scanf("%d",&n);
 7     if(n==0)
 8     {
 9         printf("average = 0.0\n");
10         printf("count = 0");
11     }
12     else
13     {
14         for(i=0;i<n;i++)
15     {
16             scanf("%d",&a);
17             sum = sum + a;
18             if (a>=60)
19             count++;
20     }
21         average =1.0* sum / n;
22         printf("average = %.1f\n",average);
23         printf("count = %d\n",count);
24     }
25     return 0;
26 } 

 

2设计思路

(1)第一步:如果学生数为零那么平均成绩与及格人数都是零

         第二步:添加一个循环作用为循环输入学生成绩

         第三步:输入一个成绩,就把该成绩加入总和(sum = sum + a)

         第四步:如果成绩及格,那么及格人数加一

(2)流程图

 

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

错误提示:没有考虑没有学生的情况

(2)解决办法:当没有学生时,平均成绩与及格人数都为零,但是要考虑格式问题

 

1     if(n==0)
2     {
3         printf("average = 0.0\n");
4         printf("count = 0");
5     }

 

三循环2 找出最小值

1实验代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int m,n,i,min;
 5     scanf("%d",&n);
 6     for(i=1;i<=n;i++)
 7     {
 8         scanf("%d",&m);
 9         if(n==1)
10         {
11             min=m;
12         }
13         if(min>m)
14         {
15             min=m;
16         }17     }
18     printf("min = %d",min);
19     return 0;
20 }

2设计思路

(1)第一步:当第一次输入时将该值赋值给最小值

         第二步:再次输入时与最小值进行比较,若该值小于最小值那么将该值赋值给最小值 

         第三步:每次输入一个值,可输入整数的个数减一

         第四步:输出最小值

(2)流程图

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

错误(1)当n=1时,i<1是错误的,无法进入循环

       (2)最后输出值应该是min,不应该是m

解决办法(1)针对n=1时,第一种解决办法时将i<n改成i<=n,第二种办法是将i=1改为i=0

              (2)将printf("min = %d",min)改为printf("min = %d",m)

四总结

  1这几周主要学习了 分支结构和循环结构,例如二分支结构与多分支结构,字符型数据的输入与输出,还有一些关于循环的知识,如何针对事例去做循环并且保证完美运行。以及一些常用的语句(if,if-else,else-if),还有循环控制方式什么时候该用for循环什么时候该用while以及do-while循环。

  遇到的问题 (1)不知道怎样选择合适的循环语句

               (2)常见的编辑错误拼写错误还是存在

          (3)当遇到特殊情况时考虑不周

                  (4)一些逻辑上的错误

  解决方法(1)在每一道题上多次尝试用不一样的循环语句,总结这些语句的应用特点,课堂上认真倾听老师的看法。

     (2)针对拼写错误,只能仔细一点。

     (3)针对错误提示,选择合理的方法去突破特殊值。

       (4)逻辑错误是个很大的漏洞,在课堂上以及慕课上紧跟老师节奏,看老师是怎样去理顺这个逻辑关系的。   

2点评

 点评1  

点评2 点评3

3表格           

 

折线图

 

posted @ 2018-11-26 20:44  杨仕奇  阅读(308)  评论(11编辑  收藏  举报