第六周作业

要求二

一.PTA作业

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

1.实验代码

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

2.设计思路

(1)题目算法

第一步:查看输入格式以及输出格式。

第二步:理解题中(超出本车道限速的10%处200元罚款,若超出50%则吊销驾驶证)的意思。

第三步:列出公式(超速百分比*100=(车速-限速)*100/车速)。

第四步:利用if else 语句表达出结果。

if (超速百分比*100<10)则输出Ok;

else if (超速百分比*100<50)则输出Exceed z%.Ticket 200;

else 则输出Exceed z%.Licence Revoked。

(2)流程图

 

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

错误截图

遇到的问题

不知道怎样才能把带有百分号的数输出程序。

解决方法

经过上网翻找资料有了一下的总结,

要求一个数的百分比,可以先把被除数乘以100,这样得出的结果就是百分比前面的整数部分,

最后printf("%.0f%%",a)。

4 PTA提交列表

说明:出错点在于不知怎样输出%类型的数。

(二)7-2计算油费

1.实验代码

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

2.设计思路

(1)题目算法

第一步:审清题意,找出有关数据变量(加油量a,汽油品种b,以及服务类型c)。

第二步:输入应用公式(应付金额=加油量*(1-折扣百分比)*对应品种价格)。

第三步:因为题意中有输入字符的形式,所以利用swich语法计算本题。

例如 if (c==e)

swich(b){

case 90:w=a*0.95*6.95;break;

case 93:w=a*0.95*7.44:break;

case 97:w=a*0.95*7.93;break;

第四步:找好对应条件中对应公式输出w。

(2)流程图

 

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

错误截图

遇到问题

提示中一直给出c=e,b=90时出现问题。

解决方法

一开始以为是程序错误后来把float换成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){
      d=a;
      a=b;
      b=d;}
    if (a>c){
      d=a;
      a=c;
      c=d;}
    if (b>c){
      d=b;
      b=c;
      c=d;}
      printf("%d->%d->%d",a,b,c);
      return 0;
 } 

2设计思路

(1)题目解法

第一步:运用if else 语句。

第二步:共有三个变量凑出三队两两比较。

第三步:增加一个变量作为替换。

第四步:输出程序。

(2)流程图

 

3.遇到的问题及解决方法

因本题和老师上课所讲内容相同所以无错误。

4.本题PTA提交列表

(四)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\n");break;
  }
  return 0;
}

2.设计思路

(1)题目算法

第一步:找出变量的类型(‘char’为符号类型,‘int’为整形)。

第二步:运用switch语法链接。

如果输入(+ - * / % 就进行相应计算)否则输出ERROR。

(2)流程图

 3 遇到的问题及解决方法

错误框图

遇到的问题:编译正确,但是打不出真负数。

解决方法:去掉(c=getcharr())就可以打成负数。

4.本题Pta提交列表

要求三

git地址

 https://git.coding.net/hezongyan321/text.git

截图

要求四

本周学习内容:1复习了if-else嵌套语句。

                          2字符型数据(用char定义字符变量)。

                          3switch case结构可以处理多支选择问题。

                          4交换i两个变量的值(输入3个数,按重小到大排列)。

本周难点在于交换两个变量的值不过经过我的反复琢磨弄懂了。

给老师的建议:我觉得老师布置的任务量有点大,看起来其实是一周的作业,其实每天都在写代码中,几乎是一有空就要面对电脑,如果真要给建议的话就是希望老师可以少留一些作业。

要求五

表格

 

折线图

我评论的博客

王佳乐:http://www.cnblogs.com/wjl1124/p/7783547.html

郑鑫:http://www.cnblogs.com/boke2017boke/p/7788452.html

 魏鹏:http://www.cnblogs.com/WeiPeng-Wuban/p/7792497.html

posted @ 2017-11-05 21:12  何宇诗  阅读(496)  评论(20编辑  收藏  举报