---恢复内容开始---

一.计算机18秋_分支结构 7-7 计算火车运行时间

  1.实验代码 

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c,d;//定义出发时间,到达时间,所用分钟,所用小时
    scanf("%d%d",&a,&b);//输入出发时间,到达时间
        c=b%100-a%100;//所用分钟,可能是负数
        d=b/100-a/100;//所用小时,一定是正数
        if(c<0)//判断c的正负
        {
        c=c+60;
        d=d-1;
       }//c一定为正数,所以分钟c=c+60;小时d=d-1;
        printf("%02d:%02d",d,c);
    
    return 0;
}

  2.设计思路

    (1)文字描述

      第一步:定义出发时间a,到达时间b,所用的分钟c,小时d。

      第二步:用到达时间前两位减去出发时间前两位表示所用的小时数d

      第三步:用到达时间的后两位减去出发时间后两位表示所用的分钟数c

      第四步:出发时间和到达时间为同一天,时间为24小时制,所以的d>=0。

      第五步:存在c<0的情况,按题目要求c>=0,所以从d中取1,加在c中,即c=c+60;b=b-1;

    (2)流程图

 

  3.错误提示

 

 

(1)定义的c,d弄混

(2)先相减后取余,和取整

 

  4.解决办法

   (1)仔细阅读题意,从头捋顺代码,整理思路。

   (2)先相减后取整或取余,和先取余或取整例再相减的结果不一样,如:(16-9)%3=2;16%3-9%3=1 两个式子结果并不一样,而题中需要的是后者,我先前的做法是错误的。

二.计算机18秋_循环1  7-4 求奇数和

  1.实验代码

#include<stdio.h>
int main()
{
int a,sum=0;//定义输入数a,奇数和sum
scanf("%d",&a);
while(a>0)//当a>0是读入
{
if(a%2!=0)//判断a是否为奇数
{
sum=sum+a;//奇数和
}
scanf("%d",&a);//不能缺少,没有这句,代表只输入一个大于0的数,就是死循环(重点)
}
printf("%d",sum);
return 0;
}

 2.设计思路

    (1)文字描述

      第一步:定义输入数a,奇数和sum=0

      第二步:输入a,并判断a的值

      第三步:如果a>0,执行循环

      第四步:在循环中判断a是否为奇数

      第五步:是则sum=sum+a

    (2)流程图

 

   3.错误提示

  (1)取地址符号总是遗忘

  (2)插入代码中标注(重点)的地方,按常规思路想很自然就舍去了

 4.解决办法

   (1)仔细阅读题意,从头捋顺代码,整理思路。

   (2) 询问助教,知道了,不能缺少,没有这句,代表只输入一个大于0的数,就是死循环

三.计算机18秋-循环2 7-6 作品评分

   1.实验代码

#include<stdio.h>
#include<math.h>
int main()
{
    int n,i;//定义评委数n
    float x,max,min,a,b,sum=0;//定义分数x,最大值max,最小值min,去掉最高分和最低分的总成绩a,平均分b,总分sum
    scanf("%d\n",&n);
    for(i=1;i<=n;i++)//执行循环
    {
        scanf("%f",&x);
        sum=sum+x;//求总成绩
        if(i==1)
        {
            min=x;
            max=x;
        }//给max,min赋值,以便下面的比较
        if(x>max)
        {
            max=x;
        }//求最大值
        if(x<min)
        {
            min=x;
        }//求最小值
    } 
    a=sum-min-max;//去掉最高分和最低分的总成绩
    b=a/(n-2);//平均分
    printf("%.2f",b);
     return 0; 
}

2.设计思路

    (1)文字描述

      第一步:定义评委数n,分数x,最大值max,最小值min,去掉最高分和最低分的总成绩a,平均分b,总分sum

      第二步:求所有分数和sum

      第三步:给max,min赋值

      第四步:比较大小求出max,min,并用sum-max-min求得去掉最高分和最低分的总成绩a

      第五步:求平均分b=a/(n-2)

   (2)流程图

3.错误提示

 

  (1)max,min 判断是符号弄反

  (2)if判断句中if()中等于写成一个=

4.解决办法

   (1)仔细阅读题意,从头捋顺代码,整理思路。

    (2)翻阅书籍,if判断句中if()中等于要写成==

四.总结

  1.总结

  a.所学内容

  (1)有关分支结构的一些必要步骤

  (2)有关for,while,do while循环的一些知识

 b.遇到问题

  (1)运用for, while, do while不熟练

  (2)不知道怎么四舍五入

  (3)不知道怎么定义字母

    (4)   编程繁琐,多余

c.解决方法

  通过自己翻阅书籍,研究,和同学研究讨论,实在不会的问老师和助教,问题解决后自己要多加练习

  (1)计算每一步都需要考虑是否按照题意要求

  (2)在所得结果上加上0.5就会在输出的整数,就可以四舍五入输出的结果

  (3)int 是整形数据,int a = 3;这里int 是类型, a是整形变量,3是赋值;char s = 'A'; char是字符类型,s是字符型变量,A是赋值给变量s;

  2.点评

(1)https://www.cnblogs.com/zxj0402/p/9977677.html

(2)https://www.cnblogs.com/ysq1n/p/10022816.html

(3)https://www.cnblogs.com/z-x-c2429657075-/p/9977471.html

  3.表格

周数 此周代码行数/行 码代码所用时长/h 所写博客字数/字 写博客所用时长/h 所涉及的知识点
第9周 2800 12 0 有关分支结构的知识
第10周 3000 15 0 有关四则运算的知识
第11周 2800 13 0 有关while,for,do while循环的知识 
第12周 2800 14  1000  5 加深对循环的知识 

  4.折线图

 

=---恢复内容结束---