• 第六周作业


    • 要求二

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

    1.实验代码

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int car,x;
     5     float percent;
     6     char ch='%';
     7     scanf("%d %d",&car,&x);
     8     if(car<0||x<=0)printf("the input is error");
     9     else if(car<x*1.1f)printf("OK");
    10     else if(car<x*1.5f){
    11              percent=(car-x)*100.0f/x;
    12              printf("Exceed %.0f%c. Ticket 200",percent,ch);}
    13     else{
    14          percent=(car-x)*100.0f/x;
    15          printf("Exceed %.0f%c. License Revoked",percent,ch);}
    16     return 0;
    17 }

    2.设计思路

    (1)主思路

    • 第一步:定义整数型变量car(车速)、x(限速),浮点数变量percent(超速百分比)和字符型定量ch(‘%’);
    • 第二步:用scanf函数读入整数给car和x;
    • 第三步:用if elseif else函数结构先判断输入是否符合范围,再判断超速与否;
    • 第四步:其中若超速则判断范围并计算所对应的超速百分比并用printf函数输出百分比(后跟‘%’字符定量)和相应的超速结果语句。

    注解:本题细节问题要注意整数与浮点数的转换和超速范围的开闭区间。

    (2)流程图

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

    printf函数中的%显示不出来导致PTA部分错误。

    解决办法就是定义一个字符型定量ch=‘%’代替printf函数中原本的%符号。

    4.本题PTA提交列表

    部分错误即为上述遇到的问题。

    题目7-2 计算油费

    1.实验代码

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int a,b;
     5     char c;
     6     double money=0;
     7     scanf("%d %d %c",&a,&b,&c);
     8     switch(b)
     9     {        case 90:money=6.95*a;break;
    10              case 93:money=7.44*a;break;
    11              case 97:money=7.93*a;break;
    12              default:printf("error
    ");break;
    13     }
    14     if(c=='m')
    15        money=money*0.95;
    16     else
    17        money=money*0.97;
    18     printf("%.2lf",money);
    19     return 0;
    20 }

    2.设计思路

    (1)主思路

    • 第一步 :定义整数型变量a(加油量)、b(汽油品种),字符型变量c(服务类型)和浮点数变量money(应付款额);
    • 第二步:用scanf函数读入整数给a和b,读入字符给c;
    • 第三步:用switch语句以b的不同情况运行获得相应种类汽油和油量的费用;
    • 第四步:用if-else语句对c进行类型的判断并计算出对应折扣后的费用;
    • 第五步:用printf函数输出最终结果money。

    注解:本题细节问题要注意整数与浮点数的转换和结果应保留两位小数。

    (2)流程图

     

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

    用if函数判断字符变量时没有用单引号括中,导致编程错误。

    解决办法就是用单引号括中m,即

    4.本题PTA提交列表

    第一个部分正确是由于浮点型变量用的float定义导致错误;

    第二个部分正确是修改时程序时粗心顺手删掉了if函数中的符号导致错误。

    题目7-3 比较大小

    1.实验代码

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int a,b,c,x;
     5     scanf("%d %d %d",&a,&b,&c);
     6     if(a<b){
     7             x=a;
     8             a=b;
     9             b=x;}
    10     if(a<c){
    11             x=a;
    12             a=c;
    13             c=x;}
    14     if(b<c){
    15             x=b;
    16             b=c;
    17             c=x;}
    18     printf("%d->%d->%d",c,b,a);
    19     return 0;
    20 }

    2.设计思路

    (1)主思路

    • 第一步:定义整数型变量a,b,c(三个比较大小的数字)和x(赋值过程中间变量);
    • 第二步:用scanf函数读入整数给a,b,c;
    • 第三步:用三个if函数分别判断每两个数字的大小,再根据需要中途以x为中间变量进行赋值交换数字,最终使a,b,c大小呈依次递增;
    • 第四步:用printf函数按照题目要求格式输出即可。

    注解:重点在于三个数字分别比较大小并按预定结果进行赋值交换,以及最终结果其间以“->”相连。

    (2)流程图

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

     本题为课堂练习固没有错误,但是在具体编程进行数字交换时比较容易弄混。

    4.本题PTA提交列表

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

    1.实验代码

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int a,b;
     5     char ch;
     6     scanf("%d %c %d",&a,&ch,&b);
     7     switch(ch){
     8         case '+':printf("%d",a+b);break;
     9         case '-':printf("%d",a-b);break;
    10         case '*':printf("%d",a*b);break;
    11         case '/':printf("%d",a/b);break;
    12         case '%':printf("%d",a%b);break;
    13         default:printf("ERROR");}
    14     return 0;
    15 }

    2.设计思路

    (1)主思路

    • 第一步:定义整数型变量a,b(题目所要求的两个整数)和字符型变量ch(用于switch循环);
    • 第二步:用scanf函数读入整数给a,b和读入字符给ch;
    • 第三步:用switch语句以ch的不同情况进行对应的代数运算并用printf函数输出结果,其中存在其他字符另输出“ERROR”。

    注解:本题主要注意switch语句的格式规范以及输入输出的格式。

    (2)流程图

     

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

    scanf函数读入格式用“,”间隔导致PTA错误。

     将格式按题目要求改为空格间隔即可。

    4.本题PTA提交列表

    答案错误为scanf函数中忘记打入&符号导致错误;

    部分正确为上述错误(即scanf函数读入用“,”间隔)。

    • 要求三

    上传成功后coding.net项目的截图

    Git地址:https://git.coding.net/cyq1076926262/NO.4.git

    • 要求四

    个人总结

    (1)本周所学内容或收获:

    ①巩固了switch循环语句的用法;

    ②学习了while循环语句及do while结构;

    ③自学了for语句的用法;

    ④自学了pow函数的用法(用于C题库第8题,以下百度搜索注意事项);

    ⑤修正了switch语句的流程图画法,如助教指出老师的错误之处,有时候老师的课件并不一定完美,我们更应该培养自身辨别能力。

    (2)本周做学难点与不明白的知识点

    我认为的难点:

    ①循环语句的运用;

    ②面对较复杂题目编程时如何精简逻辑。

    不明白知识点:

    没有未明白的知识点,只是新学习的循环语句还未熟练使用。

    (3)对目前老师的上课形式有什么意见或建议:

    希望将来专业课程的学习能更加注重编程问题。相比于花费更多时间做博客,我更愿意平衡一下时间去做C题库,因为通过本周C题库的做题,我更愿意也更有动力为了解题去学习新的语法、函数等等。当然关于博客的流程图我觉得还是挺有意义的,很有助于整理思路,无论是题前题后。

    <11.12补>通过今天QQ群里老师、助教、其他同学的对话,我也有所感想。

    ①首先是我不认为有那么多绝对的事,比如什么每道题必须有错误,所以我认为助教这一角色的定位也是灵活的,在我看来只要他能对我起到正面作用,我就支持,反之,我会提出,有要求就必完成式的做作业可能是我的习惯吧,所以对于非常非常严格的博客我并不抵触,而通过其他观念看待问题的同学当然会产生不同的反应;

    ②关于老师、助教、同学的关系,一千个读者眼中有一千个哈姆雷特,我们每个人都各自有界定,我认为有一点不变的是他们的目的是教育学生而不是坑害学生,就严谨的思想来说,既然我想认真学习专业,为什么不多注意些呢;

    ③对于当前的每周作业来说,我也有一些我的意见,我认为更自由化的博客要求更能检验和提高我们的专业能力,总有人在努力,总有人更努力。

    • 要求五

    1.点评作业

    何宗彦http://www.cnblogs.com/hezongyan/)(1、14楼)

    胡俊鲜http://www.cnblogs.com/123456hjx/)(3楼)

    陈盈驰http://www.cnblogs.com/1999-cyc/)(1楼)

    2.学习进度条(11/5 8:00~11/8 8:00)

     

  • 相关阅读:
    APP性能测试工具GT的使用总结:app内存测试
    app专项测试:app静态测试(耗时、流量、内存、图片大小)
    沟通的重要性
    [改善Java代码]推荐覆写toString方法
    [改善Java代码]使用package-info类为包服务
    [改善Java代码]不要主动进行垃圾回收
    [改善Java代码]推荐使用String直接量赋值
    [改善Java代码]在接口中不要存在实现代码
    [改善Java代码]不要随便设置随机种子
    [改善Java代码]优先使用整型池
  • 原文地址:https://www.cnblogs.com/cyq66992152/p/7789995.html
Copyright © 2020-2023  润新知