第六周作业

 

 

 

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

1.实验代码

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

2.设计思路

(1)主要描述题目算法

第一步:我首先仔细读了三遍题, 此题分为三种情况①小于限速的%10不罚款②超速%10-%20罚款200

              ③超速50%吊销驾驶证

第二步:我运用上课学的if-else语句,将三种情况分别列出

if (超速小于%10)则输出Ok

else if (超速%10-%50)则输出Exceed z%.Ticket 200

else 则输出Exceed z%.Licence Revoked

第三步:在De-C++上编译检查是否有 错误

(2)流程图

3.本题调试过程中遇到的问题 

错误提示截图

 

 

 

遇到问题

提交总是显示答案错误

解决办法

我又仔细读了一遍 题,发现公式写错了,按照题目公式改正

4.PTA提交列表

题目7-2计算油费

1.实验代码

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

2.设计思路

(1)主要描述题目算法

 第一步:仔细审题

              ①把题分为两大类:c == 'm'还是c == 'e' ②每大类又分为三种小情况:90还是93或者是97

              ③按照题目中的公式套用到每种情况中。

第二步:考虑用学过的什么知识点,个人认为用switch语句比较好

            将所有的情况列出

if (c == 'm'){
  switch(B){
    case 90:M = A * 6.95 * 0.95;break;
    case 93:M = A * 7.44 * 0.95;break;
    case 97:M = A * 7.93 * 0.95;break;
    }
else if (c == 'e'){
    switch(B){
    case 90:M = A * 6.95 * 0.97;break;
    case 93:M = A * 7.44 * 0.97;break;
    case 97:M = A * 7.93 * 0.97;break;}
第三步:编译运行检查是否有误。
(2)流程图

3.本题调试过程中遇到的问题及解决办法
错误提示截图

遇到的问题
答案错误
解决办法
重新在自己的编译器编译发现自己把B 打成b
4.PTA提交列表

题目7-3比较大小
#include<stdio.h>
int main()
{
  int a,b,c,t;
  scanf("%d%d%d",&a,&b,&c);
  if(a>b)
    {t=a,a=b,b=t;}
  if(a>c)
    {t=a,a=c,c=t;}
  if(b>c)
    {t=b,b=c,c=t;}
  printf("%d->%d->%d",a,b,c);
  return 0;
}

2.设计思路

(1)主要描述题目算法

第一步:阅读题目,三个数 比大小

              ①借助另外一个变量 t ②把三个数 两个一组分成三组③两个数之间比大小 

第二步:   运用if-if-if语句 分为三种情况        

 1.if(a>b)
    {t=a,a=b,b=t;}
 2.if(a>c)
    {t=a,a=c,c=t;}
 3. if(b>c)
    {t=b,b=c,c=t;}

 第三步:将自己的想法打成代码,并编译运行

(2)流程图

3.本题调试过程中遇到的问题及解决办法

因为这道题牛老师亲自给我讲过,没有问题。

4.PTA提交列表

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

1.实验代码

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

2.设计思路

(1)主要描述题目算法

第一步:读题,要求设计一个计算器。

              实现五种算法“+”,"-",”*“,"/","%"

第二步:运用switch语句,分五种情况:

   ①case '+':printf("%d",x+y);break;
   ② case '-':printf("%d",x-y);break;
   ③ case '*':printf("%d",x*y);break;
   ④case '/':printf("%d",x/y);break;
   ⑤case '%':printf("%d",x%y);break;
   ⑥default :printf("ERROR\n");break;

第三步:编译运行

(2)流程图

3.本题调试过程中 遇到的问题

错误提示截图

遇到问题

编译错误

解决方法:和题目7-2对比 发现switch后的()应该有c

4.pta提交列表

要求三

git地址

https://coding.net/u/zhangle1234567/p/PTA6/git/tree/master/

提交截图

要求四

个人总结

(1)本周学到的内容

1.复习if-else语句,新学习switch语句。

2.再进行大小比较的问题时,可引入中间变量

3.学会运用double/float数据

4.字符型数据(用char定义字符变量)

(2)难点

在遇到新题时不会运用switch 语句,比较大小时引入中间变量不容易想出

(3)意见

老师在黑板上写的东西后排看不见。

要求五

(1)点评同学作业链接

       何宗彦http://www.cnblogs.com/hezongyan/p/7783360.html

      徐敬淇http://www.cnblogs.com/SR1011/p/7801670.html

        陈雨秋http://www.cnblogs.com/cyq66992152/p/7789995.html

(2)学习进度条

posted @ 2017-11-08 00:12  张乐五班  阅读(271)  评论(6编辑  收藏  举报