第六周作业

一、PTA作业

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

1.实验代码

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

2 设计思路

(1)文字描述

第一步:理解题意 情况分为三类:第一类为正常情况下车速小于10%*限速;第二类为超速10%~50%之间罚款200元;第三类为超速50%或50%以上吊销驾驶证
第二步:打出框架  并将三类情况分别列出

第三步:编译运行

(2)流程图

 

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

错误提示的截图

问题及解决办法:第一个运行结果和第三个运行结果都是对的  试了很多次第二次运行结果都是错误的,通过问同学得知if中是不可以参与运算的,而且审题有误,所以在重新审题后运行正确。 

4.本题PTA提交列表

错误提示解释说明:我理解的和题意不符,所以并不正确。提交时显示为全部错误,更正后没有问题。

题目7-2  计算邮费

1.实验代码

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

2 设计思路

1)文字描述

第一步:理解题意 三种汽油 两种服务 两种折扣  
第二步:打出框架  运用switch进行分类讨论 任选一种汽油并任一服务和折扣 注意运算结果保存两位小数

第三步:编译运行

(2)流程图

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

错误提示的截图

问题及解决办法:在本题中  首先是定义变量类型时a应该为整形,而我定义为了double型,并且写double型时后面写成了f%,其实应该为lf%,这个是忽略了,审题后发现错误。

4.本题PTA提交列表

在devc++中是正确的,而在pta中是错误的原因是输出是的要求错误,多了一个money。在提交多次后发现了错误。

题目7-3  比较大小

1.实验代码

#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=c;
      c=a;
      a=t;}
    if(b>c){
      t=c;
      c=b;
      b=t;}
    printf("%d->%d->%d",a,b,c);
    return 0;
}

2 设计思路

1)文字描述

第一步:看到比较大小想到替换  三个数比较大小  要用第四个变量替换
第二步:定义四个变量进行替换 分成三部分 一个一个比较

第三步:编译运行

(2)流程图

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

错误提示的截图

问题及解决办法:由于这道题在课堂上做过的  按理来说不应该出现错误,但是太过马虎 不小心在if后忘记了‘{}’而且应为a>b,a>c,b>c,把‘>’和‘<’弄反了。

4.本题PTA提交列表

在devc++中改过后并没有错误,对于老师说提交列表只有一次的扣分  我也不是很理解!尤其是这种课堂上做过的题。

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

1.实验代码

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

2 设计思路

1)文字描述

第一步:理解题意 需要运算两个数组的多种不同运算 分情况讨论 分出+,-,*,/和%。
第二步:用switch框架来进行分类。

第三步:编译运行

(2)流程图

 

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

错误提示的截图

问题及解决办法:一直是部分正确,无论怎么找,最后在老师的帮助下发现c%写成了C%,但是在c++中没有报错。

4.本题PTA提交列表

由于那个c%的错误让我试了很多遍  也改了很多次,也有加了条件后改的。

要求三

git地址:

截图

要求四

个人总结
(1)本周你学习了哪些内容?收获了什么?

答;本周复习了 if else  讲了流程图的注意事项  学习了switch结构,收获了一种新的结构,更开拓了打代码的视野。
(2)本周所学内容中你觉得哪些是难点?有哪些知识点还不明白? 

答:我认为流程图的画法是一个难点,不明白的知识点是switch的流程图画不明白。
(3)你对目前老师的上课形式有什么意见或建议?

希望对写作业的时间做出调整,有同学已经提出过。但这周是有些赶。大一毕竟要参加各种活动比如这个星期的红歌比赛,个人觉得这周作业量较大。

要求五

互评和学习进度
1、点评3个同学的本周作业:

何宗彦:

 透光玻璃:

 魏鹏:

2、折线图

表格

  代码行数 时间 博客字数 时间
11.05 25 45min 200 45min
11.06 60 120min 400 90min
11.07 34 30min 200 90min
         

 

 

 

 

涉及的知识点:if-else的嵌套结构;

                        switch的练习。

原文地址:https://www.cnblogs.com/wjl1124/p/7783547.html