• 第六周作业


    ***PTA***

    **题目7-1 高速公路超速处罚**

    1.实验代码

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

    2. 设计思路

     第一步:定义a,b,c;输入a,b。

    第二步:设置if语句,先判断c<10时,输出OK。

    第三步:再判断c<50时的情况,输出Exceed c%. Ticket 200。

    第四步:剩下的情况,输出Exceed c%. License Revoked。

    3.流程图

     

    4.问题及解决方法

     此题之前做过,但重新做一遍的时候还是犯了一些马虎,在数据类型上出了差错,已解决。

    **题目7-2 计算油费**

     1.实验代码

    #include<stdio.h>
    int main()
    {
        int a,b;
        double s,x,y;
        char c;
        s=0;
        scanf("%d %d %c",&a,&b,&c);
        switch(b)
            {
                case 90:y=6.95;break;
                case 93:y=7.44;break;
                case 97:y=7.93;break;
            }
        switch(c)
            {
                case 'm':x=0.95;break;
                case 'e':x=0.97;break;
            }
            s=x*y*a;
           printf("%.2f",s);
        return 0;
     } 

    2. 设计思路

    第一步:定义a,b,c,s,x,y且输入a,b,c。

    第二步:当b=90,93,97时,定义y的值。

    第三步:当c等于m或e时,定义x的值。

    第四步:把x*y*a的值赋给s。

    3.流程图

    4.问题及解决方法

    我试了很多种方式,用过while语句和do-while语句,但是写完后不太好看,而且总是“部分正确”。参考了同学的代码后,使用了switch语句,不仅解决了问题,而且代码看起来也很工整。

    **题目7-3 比较大小**

     1.实验代码

    #include<stdio.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 if(c>b&&b>a)
       printf("%d->%d->%d
    ",a,b,c);
       else if(c==b&&b==a)
       printf("%d->%d->%d
    ",a,b,c);
       return 0;
    }

    2.设计思路

    第一步:定义a,b,c并输入a,b,c。

    第二步:讨论各种情况,一共七种情况。

    第三步:设置if,else-if语句。

    第四步:编译运行,结束。

    3.流程图

    4.问题及解决方法

    我写的比较繁琐,一开始我一直觉得我的代码是正确的。但是pta一直提示等价时的情况,然后我加了一个else-if语句else if(c==b&&b==a)   printf("%d->%d->%d ",a,b,c);问题就解决了。

    **题目7-4 两个数的简单计算器 **

     1.实验代码

    #include<stdio.h>
    int main()
    {
      int a,b;
      char c;
      scanf("%d %c %d",&a,&c,&b);
      switch(c)
      {
      case '+':printf("%d",a+b);break;
      case '-':printf("%d",a-b);break;
      case '*':printf("%d",a*b);break;
      case '/':printf("%d",a/b);break;
      case '%':printf("%d",a%b);break; 
      default:printf("ERROR
    ");break;
      }
      return 0;
    }

    2.设计思路

    第一步:定义a,b,c;输入a,c,b.

    第二步:讨论当c为+,-,*,/,%时的情况并运用switch语句。

    第三步:如果输入的c没有上述符号,则输出ERROR。

    3.流程图

    4.问题及解决方法

    以前做过此类题,在解决过程中并没有什么太大的问题;只不过我审题不仔细,忘记写default时的情况,出现部分正确的提示。

    ***GIT***

    地址:https://git.coding.net/kimhae/test.git

    ***个人总结***

    本周学习了while,do-while,switch等语句,通过pta等练习,我初步的掌握了循环语句,但还是有些不熟练。

    我认为循环语句不是太难,只是有些分不清每个语句的区别。

    我觉得老师讲的很好。老师敲代码的时候,我们也跟着敲,我很喜欢这种方式。

    ***互评和学习进度***

    互评:

    http://www.cnblogs.com/jhd1127/p/7811138.html

    http://www.cnblogs.com/572453251asd/p/7811205.html

    http://www.cnblogs.com/jsjyys/p/7818602.html

    学习进度:

     

  • 相关阅读:
    采用坐标变换(移动和旋转)画箭头
    学会Func
    一个链接器的实现
    linux内核skb操作
    终于实现samba可写不可删除
    删掉SafeDrv病毒(这个病毒有点意思)
    Writing a ServiceMain Function(使用RegisterServiceCtrlHandler函数)
    利用Winscp,Putty实现Windows下编写Linux程序
    联发科6亿美元将大陆子公司卖给四维图新(180个人价值6亿美元)
    TFTP:简单文本传输协议,BOOTP:引导程序协议
  • 原文地址:https://www.cnblogs.com/kimhae/p/7795597.html
Copyright © 2020-2023  润新知