首页 > 其他 > 详细

第二次作业

时间:2018-11-06 23:05:17      阅读:259      评论:0      收藏:0      [点我收藏+]

【作业要求】:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292

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

1.实验代码

 

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

 

2.设计思路

第一步:仔细阅读作业题目要求,输入格式及输出格式。观察输出样例及输入样例的数字间是否存在空格。

第二步:定义整型变量x(出发时间),y(到达时间),a(所用小时数),b(所用分钟数)。

第三步:利用a=y/100-x/100及b=y%100-x%100分别求出所用小时及所用分钟数。因为变量被定义为整型,符号/可以运用除法运算求出前两位小时,符号%可以运用求余运算求出后两位分钟。

第四步:判断后两位分钟数的两种情况,利用if-else语句分别求出不同情况下的结果。

第五步:输出结果。

流程图

 技术分享图片

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

刚开始我的代码及调试是这样的,输出结果为3:29,小时的前面并没有补0。

技术分享图片

 

技术分享图片

通过同学的帮助与在网络上的查询,代码应输入为printf("%02d:%02d",a,b);其中%02d代表如果整数不够2列就补上0,如果大于2则没有影响。例如当结果为1时输出01,当结果为11时则正常输出11。

但这只是错误之一,我发现当出发时间的分钟数大于到达时间的分钟数,会变成如下情况。

技术分享图片

 

 

当出发时间分钟数大于到达时间分钟数时,输出结果会出现负数。因此,需要运用if-else语句分别解释这两种不同情况。

情况一:出发时间分钟数小于到达到达时间分钟数。

技术分享图片

 

技术分享图片

 

 

情况二:出发时间分钟数大于到达时间分钟数

 

技术分享图片

技术分享图片

然后就输出了不同情况下的正确结果。

 

 

 

 

第四次作业:7-4 比较大小

1.实验代码

#include <stdio.h>
#include <math.h>
int main()
{
  int a,b,c;
  scanf("%d %d %d",&a,&b,&c);
  if(a>b&&b>c){
    printf("%d->%d->%d",c,b,a);
  }
  else if(a>c&&c>b){
    printf("%d->%d->%d",b,c,a);
  }
  else if(b>a&&a>c){
    printf("%d->%d->%d",c,a,b);
  }
  else if(b>c&&c>a){
    printf("%d->%d->%d",a,c,b);
  }
  else if(c>a&&a>b){
    printf("%d->%d->%d",b,a,c);
  }
  else{
    printf("%d->%d->%d",a,b,c);           
  }
  return 0;
}

 

2.设计思路

第一步:仔细阅读作业题目要求,输入格式及输出格式。观察输出样例及输入样例的数字间是否存在空格。

第二步:定义整型变量a,b,c。利用if-else语句判断三个数字的大小,并从小到大依次输出。

第三步:按照输出格式输出结果。

流程图

 技术分享图片

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

刚开始我的代码及调试是这样的,编译并没有出错,但是无法从小到大依次输出正确格式。

技术分享图片

 

经过同学的帮助以及查阅资料书,我明白了错误出在(a>b>c)上。

正确形式应该是(a>b&&b>c),其它以此类推。

其中&&代表 与,意为同时都要满足。

更改后的代码及调试如下

 技术分享图片

技术分享图片

技术分享图片

 

这样就能输出正确的格式,同理,其它情况同样适用。

4.个人总结

(1)在本周的学习当中,我学习到了if-else语句,可以通过语句判断并计算多种不同情况。在学习中确实遇到了一些问题,比如没有仔细观察题目,没能理解其中的隐含条件。通过做题不仅巩固了if-else语句的知识,同时也掌握了新的知识:%02d的含义。通过 7-4 比较大小这道题,也学会了分类讨论的学习思想。

(2)本周的学习内容中感觉if-else语句和else-if语句比较难,经常混淆它们的概念。对此,通过上网查询资料以及与同学的交流,明白了这周的学习内容,并学习到了新的知识。

 

技术分享图片

技术分享图片

 

 

作业点评:http://www.cnblogs.com/zst1/p/9912320.html

            http://www.cnblogs.com/0224ming/p/9859207.html

              http://www.cnblogs.com/chen0803/p/9912503.html.

第二次作业

原文:https://www.cnblogs.com/mashihao/p/9912314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!