• 我的第二次作业


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

    第三次作业 题目7-1 计算火车运行时间

     1 #include<stdio.h>
     2 int main(void)
     3 {
     4     int a,b,c,d;
     5     scanf("%d %d",&a,&b);
     6     c=b/100-a/100;
     7     d=b%100-a%100;
     8      if(d<0) {
     9         d=60+d;                
    10         c=c-1;
    11     }
    12     printf("%02d:%02d",c,d);
    13     return 0;
    14 }

    解题思路

    第一步:先定义四个整数变量a,b,c,d;

    第二步:输入整数变量a,b的值,a的值表示火车出发时间,b的值表示火车到达时间。

    第三步:计算出整数变量c的值。c的值为b/100-a/100的值。即火车到达时间除以100取留下的整数部分就是火车到达时的小时数,再减去火车出发时间除以100取留下的整数部分即火车出发时的小时数,就等于旅途时所用的小时数。

    第四步:计算出整数变量d的值。c的值为b%100-a%100的值。即火车到达时间除以100取余就是火车到达时的分钟数,再减去火车出发时间除以100取余即火车出发时的分钟数,就等于旅途时所用的分钟数。
     
    第五步:因为是减法,会考虑到分钟可能为负数的情况,所以要向小时借位。所以进行一步判断,判断计算出旅途所用的分钟数d是否小于0,如果小于零执行第六步,否则直接跳转第七步。
     
    第六步:因为分钟数已经小于零了,所以需要在小时上减去1,在分钟上加上60,即d=60+d ,c=c-1。这样就避免了分钟会出现负数的情况。
     
    第七步:输出最后算出的值。02d代表了输出2位整数,如果不足就用0补齐,这样就符合了题目的条件。
     
    流程图
     
    程序运行时的结果
     本题调试过程碰到问题及解决办法

    在换个数据时,即到达分钟数比出发分钟数小的时候,结果就与题目不符,出现了负号。
    调试过后问题解决了,但是输出的问题还存在着如果分钟或者小时小于2位,那么前面的0如何输出,最后思考并多次试验无果后,在网上寻找了解决方法,并将这种方法记了下来。02d就是输出2位整数,如果不够的话计算机会在前面补0,这种方法还是非常适用于这种时间题目的。
    然后思考后在加上在慕课网上的学习,我了解到没有考虑分钟借位的问题,我尝试着修改程序,最后添加了if 语句后调试解决了这个问题,即当分钟数相减后小于0时,将分钟数加上60,并将小时数减去1即可,这样就不会出现分钟为负数的情况
    个人总结
    本周我学习主要是在慕课网上的学习,知道了#deline指定的一个数没有办法进行更换,还有if语句的使用,以及简单,多重,嵌套的if else 语句的使用,我们做题简便性取决于你使用的是哪类语句,有些语句虽然处理方法相同,但是却不一定适合某些题目。
    遇到的问题
    当我使用if语句的时候,经常会在if语句的后方加上分号,这是初学者所容易犯得错误,在使用else时,经常会搞混与这个else结合的if时那个,并且在使用else if 时,括号内的范围总是摸索不清,但经过多次联系,这些问题已经基本解决。
     
    第四次作业  题目7-2  高速公路超速处罚
    #include<stdio.h>
    int main(void)
    { 
      double a,b,c,d;
      scanf("%lf %lf",&a,&b);
      c=a-b;
      d=((a/b)-1)*100;
      if(c<b*0.1){
          printf("OK");}
      else if(c>=b*0.5){
              printf("Exceed %.0f%%. License Revoked",d);
          } 
      else{
          printf("Exceed %.0f%%. Ticket 200",d);
      }
      return 0;
    }
    解题思路
    第一步:定义三个整型变量,a,b,c,d
     
    第二步:输入整型变量a,b的值,a代表车速,b代表限速。
     
    第三步:计算出车速超出限速的多少,即c的值。
     
    第四步:计算出超速百分比,即超出的速度比上限制的速度在乘上100,就是超速的百分比数值。
     
    第五步:进行判断,如果超出的速度低于本车道限速的10%,就将进行第六步,如果达到或超出本车道限速50%,就将进行第七步,否则,进行第八步,这里需要用到else if语句。
     
    第六步:输出OK!。
     
    第七步:输出Exceed %.0f%%. License Revoked,其中%.0f代表着输出的超速百分比为没有小数,而两个百分号是为了在输出时出现百分号。
     
    第八步:输出Exceed %.0f%%. Ticket 200,其中的%.0f也代表着超速百分比。
     
    流程图
     
     
    当我刚开始编完程序后去调试时候没有任何问题,程序可以照常执行,但是结果却和题目对不上,无法输出那个百分号。
     
    我尝试着在前方加入百分号,但结果仍然不对,但当我在后方加入百分号后,程序输出就出现了百分号,这是我理解到如果想要输出一个百分号,必须在程序中写入两个百分号,我因此又学到了一些东西。
     
    程序正确执行
    本周总结
    本周我依旧在慕课网上学习,我学到了while和for循环结构,do while循环结构,switch case跳转,这些语句都很常用,特别是循环结构,有时候如果用上循环,会比你不用循环然后敲出几百行代码来的简单,而switch case 语句,是制定个变量,当你变量是某个整数值时,如果这时候case正好等于这个值,程序将会直接跳转到那条语句上,但是,case并不能阻挡程序的进行,如果想结束程序,必须用break弹出这个循环,并且switch制定的变量必须是整数。
    遇到的问题和解决办法
    在刚开始使用循环语句时,经常不懂到底是该用for循环结构还是while更或者是do while循环结构。当一种需要循环结构的题,我会试着用三种循环结构都适用一下,比较一下。比较后,我发现for语句是适合于已知次数的循环,do while语句适合于先执行循环的题,而剩下的情况用while比较好。在其他问题方面上我不会的也会去请教同学,如果同学也不懂的话,我回去网上搜索解决的方法,如果网上实在解决不了的情况下。我会向老师去请教问题。
    统计图表
     
     
  • 相关阅读:
    DGA域名可以是色情网站域名
    使用cloudflare加速你的网站隐藏你的网站IP
    167. Two Sum II
    leetcode 563. Binary Tree Tilt
    python 多线程
    leetcode 404. Sum of Left Leaves
    leetcode 100. Same Tree
    leetcode 383. Ransom Note
    leetcode 122. Best Time to Buy and Sell Stock II
    天津Uber优步司机奖励政策(12月28日到12月29日)
  • 原文地址:https://www.cnblogs.com/zcybky/p/9853307.html
Copyright © 2020-2023  润新知