zoukankan      html  css  js  c++  java
  • 第六周作业

    要求一:

    已完成PTA第六周作业所有题目

    要求二:

    题目7-1 高速公路超速处罚
    1.实验代码

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

    2.设计思路
    (1)算法
    第一步:设置车速、限速的值c、x为整形变量;
    第二步:输入c、x的值;
    第三步:设置超出了限速百分之多少的值d为float形
    第四步:写if循环语句
    如果没超出本车道限速的10%,则输出OK,如果超出本车道限速的10%且小于50%,则输出"Exceed d% Ticket 200“,如果超出本车道限速的50%及以上,则输出“Exceed d%. License Revoked”。

    注意:由于d为浮点形,在计算d的时候它的运算所用到的量也要换为浮点形的。
    (2)流程图

    3.本题调试过程碰到问题及解决办法
    因为本题以前做过,所以在这次调试中并未遇到问题。
    4.本题PTA提交列表

    题目7-2 计算油费
    1.实验代码

    #include <stdio.h>
    int main()
    {
      int a,b;
      char c;
      double d;
      scanf("%d %d %c",&a,&b,&c);
      if(b==97)
      {
        if(c=='m')
        {
          d=(7.93*a)*0.95*1.0f;
        }
        else
        {
          d=(7.93*a)*0.97*1.0f;
        }
      }
      else if(b==93)
      {
        if(c=='m')
        {
          d=(7.44*a)*0.95*1.0f;
        }
        else
        {
          d=(7.44*a)*0.97*1.0f;
        }
      }
      else
      {
        if(c=='m')
        {
          d=(6.95*a)*0.95*1.0f;
        }
        else
        {
          d=(6.95*a)*0.97*1.0f;
        }
      }
      printf("%.2lf",d);
      return 0;
    }
    

    2.设计思路
    (1)算法
    第一步:设置加油量a,品种b为整形变量,服务类型c为字符变量,应付款额d为double形变量;
    第二步:输入a,b,c的值(其中c的值为字符);
    第三步:写if循环语句
    如果97号汽油的时候,m服务等级时,应付款额为7.93a0.95,e服务等级时,应付款额d为7.93a0.97
    如果93号汽油的时候,m服务等级时,应付款额为7.44a0.95,e服务等级时,应付款额d为7.44a0.97
    如果90号汽油的时候,m服务等级时,应付款额为6.95a0.95,e服务等级时,应付款额d为6.95a0.97;
    第四步:输出应付款额d的值。
    注意:本题涉及到字符变量,在输入字符的时候要加‘单引号’。
    (2)流程图

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

    由图得,本题是答案错误。
    (2)解决办法:向老师询问得知,把float改为double即可。(因为对于本题float没有double精准,而且还有一个学长(一班的助教)建议我们尽量用double)
    4.本题PTA提交列表

    题目7-3 比较大小
    1.实验代码

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

    2.设计思路
    (1)算法
    第一步:设置a,b,c,d四个数为整形变量;
    第二步:输入a,b,c;
    第三步:写if语句
    我的思路:本题为比较大小,那我就默认为a<b<c,然后如果真实的数值与默认的不相符,那就用老师讲的水杯法(就是a,b两杯水要交换,需要再找一个杯,然后在相互交换)进行交换;
    第四步:输出结果。
    (2)流程图

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

    从题目来看,我是部分正确。
    (2)解决办法:我又仔细的看了我的代码,发现我在赋值的时候(给让a,b,c的值从小到大)赋值错了,改正即可。
    4.本题PTA提交列表

    题目7-4 两个数的简单计算器 (必须使用switch结构实现)
    1.实验代码

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

    2.设计思路
    (1)算法
    第一步:设置a,b,d为整形变量,c为字符变量;
    第二步:写switch语句
    确定c为那个可以变化的量,然后,当c取各种不同符号的时候,写应有运算步骤,如果题目给的字符写完了,就写defaul;
    第三步:输出d。
    注意:字符要用’单引号‘
    (2)流程图

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

    由图得,本题为编译错误。
    (2))解决办法:
    编译错误就是编译的不正确,因此看看字母大小写,有无括号,中英文什么的有没有错误,最后发现落了一个括号,改正即可。
    4.本题PTA提交列表

    要求三:

    (1)Git地址:https://git.coding.net/jsjyuyaosong/usth--work.c.git
    (2)上传截图



    要求四:

    个人总结

    (1)本周你学习了哪些内容?收获了什么?
    答:我学习了switch语句,此语句也是进行选择判断的,但有时比if方便。
    (2)本周所学内容中你觉得哪些是难点?有哪些知识点还不明白?
    答:我觉得switch这个新学的语句就是重点,对于知识点的掌握还不太熟练,具体在框架不是很熟,其它的都好。
    (3)你对目前老师的上课形式有什么意见或建议?
    答:我认为老师讲的形式很好,并无意见。

    要求五:

    互评和学习进度

    1、作业互评
    (1)金海东:http://www.cnblogs.com/jhd1127/p/7811138.html
    (2)李锐:http://www.cnblogs.com/572453251asd/p/7811205.html
    (3)王姝雯:http://www.cnblogs.com/phsudie/p/7801346.html
    2、学习进度

    IT小白
  • 相关阅读:
    [WC2010]重建计划
    [POJ1741]Tree
    [NOI2008]志愿者招募
    [BZOJ2127]happiness
    「网络流 24 题」太空飞行计划
    [TJOI2015]线性代数
    [HDU2874]Connections between cities
    [POI2007]ZAP-Queries
    [SCOI2010]幸运数字
    POJ 2826 An Easy Problem?!
  • 原文地址:https://www.cnblogs.com/jsjyys/p/7818602.html
Copyright © 2011-2022 走看看