***PTA***
**题目7-1 高速公路超速处罚**
1.实验代码
#include<stdio.h> int main() { int a,b; double c; scanf("%d %d",&a,&b); c=(double)(a-b)*100/(double)b; if(c<10) printf("OK"); else if(c<50) printf("Exceed %.0f%%. Ticket 200",c); else printf("Exceed %.0f%%. License Revoked",c); return 0; }
2. 设计思路
第一步:定义a,b,c;输入a,b。
第二步:设置if语句,先判断c<10时,输出OK。
第三步:再判断c<50时的情况,输出Exceed c%. Ticket 200。
第四步:剩下的情况,输出Exceed c%. License Revoked。
3.流程图
4.问题及解决方法
此题之前做过,但重新做一遍的时候还是犯了一些马虎,在数据类型上出了差错,已解决。
**题目7-2 计算油费**
1.实验代码
#include<stdio.h> int main() { int a,b; double s,x,y; char c; s=0; scanf("%d %d %c",&a,&b,&c); switch(b) { case 90:y=6.95;break; case 93:y=7.44;break; case 97:y=7.93;break; } switch(c) { case 'm':x=0.95;break; case 'e':x=0.97;break; } s=x*y*a; printf("%.2f",s); return 0; }
2. 设计思路
第一步:定义a,b,c,s,x,y且输入a,b,c。
第二步:当b=90,93,97时,定义y的值。
第三步:当c等于m或e时,定义x的值。
第四步:把x*y*a的值赋给s。
3.流程图
4.问题及解决方法
我试了很多种方式,用过while语句和do-while语句,但是写完后不太好看,而且总是“部分正确”。参考了同学的代码后,使用了switch语句,不仅解决了问题,而且代码看起来也很工整。
**题目7-3 比较大小**
1.实验代码
#include<stdio.h> int main() { int a,b,c; scanf("%d %d %d",&a,&b,&c); if(a>b&&b>c) printf("%d->%d->%d ",c,b,a); else if(a>c&&c>b) printf("%d->%d->%d ",b,c,a); else if(b>a&&a>c) printf("%d->%d->%d ",c,a,b); else if(b>c&&c>a) printf("%d->%d->%d ",a,c,b); else if(c>a&&a>b) printf("%d->%d->%d ",b,a,c); else if(c>b&&b>a) printf("%d->%d->%d ",a,b,c); else if(c==b&&b==a) printf("%d->%d->%d ",a,b,c); return 0; }
2.设计思路
第一步:定义a,b,c并输入a,b,c。
第二步:讨论各种情况,一共七种情况。
第三步:设置if,else-if语句。
第四步:编译运行,结束。
3.流程图
4.问题及解决方法
我写的比较繁琐,一开始我一直觉得我的代码是正确的。但是pta一直提示等价时的情况,然后我加了一个else-if语句else if(c==b&&b==a) printf("%d->%d->%d ",a,b,c);问题就解决了。
**题目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 ");break; } return 0; }
2.设计思路
第一步:定义a,b,c;输入a,c,b.
第二步:讨论当c为+,-,*,/,%时的情况并运用switch语句。
第三步:如果输入的c没有上述符号,则输出ERROR。
3.流程图
4.问题及解决方法
以前做过此类题,在解决过程中并没有什么太大的问题;只不过我审题不仔细,忘记写default时的情况,出现部分正确的提示。
***GIT***
地址:https://git.coding.net/kimhae/test.git
***个人总结***
本周学习了while,do-while,switch等语句,通过pta等练习,我初步的掌握了循环语句,但还是有些不熟练。
我认为循环语句不是太难,只是有些分不清每个语句的区别。
我觉得老师讲的很好。老师敲代码的时候,我们也跟着敲,我很喜欢这种方式。
***互评和学习进度***
互评:
http://www.cnblogs.com/jhd1127/p/7811138.html
http://www.cnblogs.com/572453251asd/p/7811205.html
http://www.cnblogs.com/jsjyys/p/7818602.html
学习进度: