第二次作业

作业要求:https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2293

第三次作业:计算火车运行时间

#include<stdio.h>
int main(void)
{
  int x=0,y=0,h=0,m=0;
  scanf("%d %d",&x,&y);
  h=y/100-x/100;
  m=y%100-x%100;
  
  if(m>=0){
    printf("%02d:%02d",h,m);
  }
  else{
    h=h-1;
    m=m+60;
    printf("%02d:%02d",h,m);
  }
  return 0;
  
}

解题思路:

1.定义4个变量x,y,h,m;

2.获取用户输入,x,y都是四位数;

3.计算h=y/100-x/100,m=y%100-x%100,h为小时数,m为分钟数,由于h被定义成整型,所以用除法运算可以计算前两位小时数,取余运算可以得到后两位分钟位;

4.判断m是否>=0,若结果为‘是’则运行if语句块中的语句,否则运行else中的语句;

5.输出结果。

流程图:

 

 运行结果:

一开始我的代码是这样的,通过计算我发现3前面无法补0,因此在printf语句中人为补上了0;

最开始我没有考虑分钟借位问题,后来在跟同学交流的过程中我改了我的初始代码,并进行借位的单步调试。

在获取用户输入后计算机计算了h和m的值,并储存在物理内存中等待调用,并在判断m后直接跳转到了符合条件的else语句块。

然后输出了正确的结果

 第4次作业:高速公路超速处罚

1.实验代码:

#include<stdio.h>
int main(void)
{
  double exceed_rate,velocity,velocity_limit;
  scanf("%lf %lf",&velocity,&velocity_limit);
  exceed_rate=(velocity-velocity_limit)*100/velocity_limit;
  if(exceed_rate<=10){
    printf("OK");
  }
  else if(exceed_rate>=10&&exceed_rate<50){
    printf("Exceed %.0f%%. Ticket 200",exceed_rate);
  }
  else if(exceed_rate>=50){
    printf("Exceed %.0f%%. License Revoked",exceed_rate);
  }
  return 0;
}

2.解题思路:

1.定义变量velocity,velocity_limit;

2.获取用户输入;

3.计算超速比率exceed_rate;

4.用if——else语句判断exceed_rate是否满足相应的条件,进入否个语句块;

5.执行语句块内容并输出。

流程图:     
 

我的初始代码是这样的,在pta上运行时报了错。

通过理解代码我发现,满足3条件的语句同时会满足条件2语句,而语句2总是在语句3的前面,因此要用&&或进行约束,通过调整代码我进行了单步调试。

类似还可以改变velocity和velocity_limit的数值来执行if——else语句中的其他语句。

 本周总结:这两周主要学习了条件语句以及条件语句中的一些思维方法,以及定义条件时的一些技巧。在实际做题的过程中,提高了

对题目和代码的理解能力,收获了一些书本上没有的内容,比如在printf语句中输出%,以及用0补位。老师还在课堂上讲解
了switch-case语句,加上在晚自习的练习,我修正了一些原本代码的误区,如switch判断数值时case 后加的是相应数值
而字符型时则要加‘     ’。

问题和难点:在理解题意过程中出现了一些偏差导致程序运行不对,有一些输出格式在书本上还没有看到,因此要上网查询。有些语句需要反复练习才能真正掌握。

表格:

 

 博客字数、代码行数统计

 

作业点评:http://www.cnblogs.com/asdwadsxc/p/9892297.html

                  http://www.cnblogs.com/zcybky/p/9853307.html

                  http://www.cnblogs.com/abcefg123/p/9898650.html

 

 

posted @ 2018-11-03 17:31  jornor  阅读(446)  评论(13编辑  收藏  举报