zoukankan      html  css  js  c++  java
  • 第二次作业

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

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

    1.实验代码

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

    2.设计思路

    第一步:先通读一下题,了解题的大概意思。然后再仔细的阅读题目的具体要求。

    第二步:注意细节,其中题目要求输入2个4位正整数,而且其中间要用空格隔开,通过读题了解到,这个程序需要使用if else语句来解决。

    第三步:整理自己的思路,需要将结果分成两部分,一部分小时,一部分分钟,先设出两个四位数a,b结果的两部分分别设为h,m。想要分成两部分就需要/和%两个除法取整和取余来解决。

    流程图

    3. 本题了事的过程及解决方法

    在刚刚看到这道题的时候,我认为很简单,只需要将输入的两个数相减就可以了,但仔细思考后,发现这是不对的,因为单纯地相减并不能得到想要的答案,小时和分钟是两个部分,需要分开来算,之后再同学的指点下,了解到需要用%和/两种除法来计算,将两个四位数字通过取整和取余区分开,分别来计算,同时也要考虑到小时和分钟的进位情况。如果当分钟相减为负数时,就说明不满足一小时,所以就需要在h上减去1,同时在分钟m上加60。

    同事在输出过程中也遇到了问题,在要求下,输出时需要四位数,格式是hh:mm,第一次我的输出是这样的 printf("%d:%d",h,m);结果就是这样

    只有三位数字,过来通过网上查询,找到了问题所在,这中间存在借位的情况所以在输出的时候应这样打printf("%02d:%02d",h,m);。在%与d之间加上02,02的意思是借两位,同事空位用0来代替。

    调试过程

    第四次作业 7-3 出租车计价

    1.实验代码

    #include <stdio.h>
    #include <math.h>
    int main (){
      float x,y;
      int z,a;
      scanf("%f %f",&x,&y);
      a=y*2/5;
      if(y<5&&x<3){
        z=10;}
        else if(y>=5&&x<=3){
          z=y*2.0/5.0+10;}
      if(y<5&&x>3&&x<=10){
        z=(x-3)*2.0+10;}
        else if (y>=5&&x>3&&x<=10){
          z=10+y*2.0/5.0+(x-3.0)*2.0;}
      if (y>=5&&x>10){
        z=a+24+(x-10)*3.0;}
        else if (y<5&&x>10){
          z=24+(x-10)*3.0;}
      printf("%d",z);
      return 0;
    }

    2.解题思路

    第一步:读题,了解到这道题的主要大意是要计算车费,不同的路程区间,有不同的收费标准,同事还有额外的停车时间另计费。

    第二步:这道题需要用到if条件语句,else if语句更为简单。

    第三步:捋顺题目,区间一共有3个,一开始我认为是两部分,超过初始部分每公里2元和超过10公里部分3元每公里。其实不然,1到3是起步费10元,3到10是每公里2元,10到13一直往后是3元每公里,还要看乘客是否要求停车,时间是否超过5分钟,或超过多少个5分钟。计算有多少个5分钟可以通过/,通过取整的方法知道有多少个5分钟,余数相当于不满的5分钟就舍去了。

    流程图

    3.调试过程及问题

    调试的过程没有什么问题

    4.个人总结

    1.在本周的学习过程中,我遇到过一些问题,在写程序的时候有一些点一直都不会,在一个问题上能纠结上好长时间,在这周我学会了if else条件语句还有else if,通过做题知道了借位的方法,在比较大小的那道题中,我也学会了一种新的思维方式,解题思路。

    2.在本周的学习过程中,我在一开始if else和else if的使用上不是很熟悉,else对应哪个if还找不准,通过上网自己查找资料,询问同学,和室友一起讨论,让我能快速的理解学习的内容,消化掉上课时的内容,以及不太懂得部分。

      第一周 第二周 第三周
    博客园字数 1200 0 1000
    代码数 100 150 300

    作业点评

    https://www.cnblogs.com/xiaofengqaq/p/9845665.html

    http://www.cnblogs.com/chumengGTRlhz/p/9885207.html

    http://www.cnblogs.com/xuhuanqi/p/9906653.html

  • 相关阅读:
    绳关节(b2RopeJoint)
    公式推导 圆面积公式 圆周长公式
    ALTER TABLE causes auto_increment resulting key 'PRIMARY'
    MySQL通过Binlog恢复删除的表
    Barracuda VS antelope
    mysqldump 参数说明
    MySQL复制
    MySQL Server-id的作用
    MySQL 简洁连接数据库方式
    Kill 所有MySQL进程
  • 原文地址:https://www.cnblogs.com/0224ming/p/9859207.html
Copyright © 2011-2022 走看看