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

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

    第四次作业题目7-2高数公路的处罚:

    1.代码: 

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

    2.解题思路:

    (1).先定义三个整形变量a,b,c。

    (2).输入整型变量a,b。其中a代表车速,b代表限速。

    (3).求出车速超出限速的百分比,我们让c等于这个百分比的一百倍。

    (4).因为本题有三种情况, 所以运用if-else if的运算方式进行运算。

    (5).进入if的判断。如果车速超出限速的百分比小于10%,则输出OK。

    (6).如果车速超出限速的百分比达到10%和50%之间(包括10%),则输出“Exceed %.0lf%%. Ticket 200”,其中%.0lf%%表示车速超出限速的百分比,%.0lf指取整无小数,后面的两个%%表示输出时的%。

    (7). 如果车速超出限速的百分比达到50%以上(包括50%),则输出"Exceed %.0lf%%. License Revoked",其中%.0lf%%表示车速超出限速的百分比,%.0lf指取整无小数,后面的两个%%表示输出时的%。

    3.流程图:

     

    4.调试过程:

    (1).

    (2).

    (3).

    5.本题遇到的问题和解决方法:

    (1).我在做这道题时遇到的第一个问题就是无法输出%。

    如图我第一次只在代码里面打了一了百分号,然后正常编译运行以后(如图):

    并没有在输出值中显示出百分号,这个问题困扰了我很久,我进行了多次改动,但结果是一样的并没有显示出百分号。然后我问了我的室友,我的室友表示也在被这个问题困扰着。于是我就百度了一下结果如图:

    百度出来的结果告诉我只要在代码里打两个百分号即可,我就去改了下(如图):

    然后再编译运行一下看一下结果(如图):

    输出的结果如愿得到了我们想要的。从这道题中我学到了:如果想在程序中输出百分号,就必须在代码里打两个百分号,是一个不错的收获。

    6.个人总结:

     我认为本次作业量虽然大而且题目也不是很简单,但我学到了许多的东西,比如上面提到的百分号的问题,虽说与同学的探讨无果,但在探讨中得到了许多。而且也学到了这个方法,以后遇到这种问题就可以迎刃而解了。然后在做着道题的时候,刚开始读题也出现了问题,卡住了许久,然后一筹莫展的时候我选择重新读题,在真正了解了题意以后,这道题就简单了许多。这也暴露出了我的问题,说实话在做pta上的题时,我确实每次都不仔细读题,而导致不理解题意,而耽误时间。我从这次以后一定会改正自己的错误,继续努力。

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

    1.代码:

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

    2.解题思路:

    (1).定义整型变量a,b,h1,h2,m1,m2,h,m。

    (2).输入a,b。其中a代表火车的出发时间,b代表火车的到达时间。

    (3).运用h1=a / 100求出h1的值。h1代表的是火车出发的小时数。

        运用h2=b / 100求出h2的值。h2代表的是火车到达的小时数。

        运用m1=a % 100求出m1的值。m1代表的是火车出发的分钟数。

        运用m2=b % 100求出m2的值。m2代表的是火车到达的分钟数。

    (4).因为有一个关于火车运行时间可能为正负的情况,并且需要向小时借位的情况,所以此处需判断。如果m2大于等于m1即表示到达的分钟数大于出发的分钟数,则运用h = h2 - h1, m = m2 - m1求出h和m的值,h的值表示火车运行的小时数,m的值表示火车运行的分钟数。

    (5).如果m2小于m1即表示到达的分钟数小于出发的分钟数,这个时候要考虑借位的问题,所以运用h = h2 - h1 - 1, m = m2 - m1 + 60求出h和m的值,解释一下这里(因为m2小于m1,所以求出来的分钟已经小于零,就需要把小时数减一,再把分钟数加六十,就达到了借位的要求),h的值表示火车运行的小时数,m的值表示火车运行的分钟数。

     6).输出小时数和分钟数,题目要求的输出格式为hh:mm,所以需要打出"%02d:%02d"这种形式%d中间的02表示输出两位然后不足的用0代替。

    3.流程图:

    4.调试过程(以出发时间为12:01,到达时间为15:30为例):

    (1).

    (2).

    (3.)

    5.本题遇到的问题和解决方法

    我在做这道题时遇到的问题是借位的问题,我感觉这个才是这道题最关键的内容,也是这道题想考的内容。我刚开始忽略了这个问题,并没有想到借位的问题,结果一定是不对的。然后我就在想这个地方如何处理,我发现这个需要考虑分钟数的正负,所以这个地方需要进行分类讨论。如果火车运行时间的分钟数是负数,则需要在分钟数上加60,再在小时数上减去1,这样就达到了借位的效果。

    6.个人总结:

    在这周的学习当中我发现了其实程序题大多数都与数学题有关,所以我认为学好数学是学程序的基础。在学好C的同时也要加强数学基础。然后也要改掉一些小毛病,比如:总是忘记打分号,不读清题意,忘记在定义时分清整点型和浮点型....这些都是可以避免的错误,所以我一定要努力克服这些不必要的小毛病,提高自己的能力,加快做题的时间。

    统计图表:

    我的评论:

    http://www.cnblogs.com/powerZZ/p/9912145.html

    www.cnblogs.com/wu1263344154/p/9915201.html

    http://www.cnblogs.com/wangxiangbo/p/9903569.html

  • 相关阅读:
    对拍源码QwQ
    BZOJ-3875: [Ahoi2014&Jsoi2014]骑士游戏(SPFA+DP)
    2017年10月19日23:31:57
    BZOJ-1064: [Noi2008]假面舞会 (综合性图论题)
    BZOJ-1002: [FJOI2007]轮状病毒(打表找规律or递推 + 高精度)
    BZOJ1397 Ural 1486 Equal squares
    BZOJ3417 Poi2013 Tales of seafaring
    BZOJ2286 [Sdoi2011消耗战
    BZOJ1370 [Baltic2003]Gang团伙
    BZOJ2530 [Poi2011]Party
  • 原文地址:https://www.cnblogs.com/wudiabc/p/9905849.html
Copyright © 2011-2022 走看看