第六周作业
题目7-1 高速公路超速处罚
1.实验代码
#include<stdio.h> int main(){ int a,b; double c; scanf("%d %d",&a,&b); a*=10; c=(a-b*10.0)/(b*10.0)*100; if(a<11*b){ printf("OK"); }else if(a>=11*b&&a<15*b){ printf("Exceed %.0f%%. Ticket 200",c); }else{ printf("Exceed %.0f%%. License Revoked",c); } return 0; }
2 设计思路
第一步:根据题目所给的信息定义出a,b,c变量
第二步:输入a,b,c并赋值给a,b,c;
第三步:根据题目所给的计算公式计算出c
第四步:判断a是否大于题目条件所给的b;
第五步:输出并打印c
(2)
3.本题调试过程碰到问题及解决办法
遇到了判断a与b大小的问题,由于浮点数表示不精确而整数与其等值比较时出现了判断上的问题
解决方法: 将数扩大成整数进行判断就能解决该问题
4.本题PTA提交列表
题目7-2 计算油费
1.实验代码
#include<stdio.h> int main(){ char a; double d; int b,c; scanf("%d %d %c",&b,&c,&a); switch(c){ case 90: switch(a){ case 'm': d=6.95*b*0.95; break; case 'e': d=6.95*b*0.97; break;} break; case 93: switch(a){ case 'm': d=7.44*b*0.95; break; case 'e': d=7.44*b*0.97; break;} break; case 97: switch(a){ case 'm': d=7.93*b*0.95; break; case 'e': d=7.93*b*0.97; break;} break; }printf("%0.2f",d); return 0; }
2 设计思路
第一步:根据题目要求来定义a,b,c,d变量
第二步:利用switch来判断输入的a,c的值 再计算出d的值
第三步: 输出并打印d的值
(2)
3.本题调试过程碰到问题及解决办法
本题未遇到问题
4.本题PTA提交列表
题目7-3 比较大小
1.实验代码
#include<stdio.h> int main(){ int a,b,c,t; scanf("%d %d %d",&a,&b,&c); if(a>b){ t=b; b=a; a=t; }if(b>c){ t=c; c=b; b=t; }if(a>b){ t=b; b=a; a=t; }printf("%d->%d->%d",a,b,c); return 0; }
2 设计思路
第一步:根据题目定义a,b,c并输入且赋值给a,b,c ,再定义一个储存变量t
第二步:比较a与b的值,然后比较b与c的值,最后再比较a与b的值,将a,b,c的值交换并由小到大排列;
第三步:输出并打印a,b,c的值
(2)
3.本题调试过程碰到问题及解决办法
a,b,c之间的交换混乱导致部分情况的a,b,c的输出并非由小到大排列
解决方法:思考明白并做出了改正
题目7-4 两个数的简单计算器
1.实验代码
#include<stdio.h> int main(){ char b; int a,c,d; scanf("%d %c %d",&a,&b,&c); switch(b){ case '/': d=a/c; printf("%d",d); break; case '*': d=a*c; printf("%d",d); break; case '+': d=a+c; printf("%d",d); break; case '-': d=a-c; printf("%d",d); break; case '%': d=a%c; printf("%d",d); break; default: printf("ERROR"); }return 0; }
2 设计思路
第一步:根据题意来定义a,b,c的变量,输入并赋值给a,b,c
第二步:判断输入的b的值,然后计算出b
第三步:输出b或输出ERROR
(2)
3.本题调试过程碰到问题及解决办法
本题未遇到问题
4.本题PTA提交列表
git地址:https://git.coding.net/z1203239793/test.git
git截图:
个人总结:
本周学习了条件和循环,学会了新的计算方式