7-1:
#include <stdio.h> int main() { int a,b; double c; scanf("%d %d",&a,&b); c=(a-b)*100.0/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; }
(1)第一步:定义两个正整数a,b,分别对应车速和限速
第二步:定义c算出超出限速的百分比
第三步:分类讨论限速超出10%,和50%情况
错误:输出结果没有%
解决办法:在%。0f后加两个%%即可出来
尝试了许多次,最后经查阅终于正确
7-2
#include <stdio.h> int main() { double a,d; int b; char c; scanf("%lf%d %c",&a,&b,&c); if (c == 'm'){ switch(b){ case 90:d = a * 6.95 * 0.95;break; case 93:d = a * 7.44 * 0.95;break; case 97:d = a * 7.93 * 0.95;break; } printf("%.2f",d); } else if (c == 'e'){ switch(b){ case 90:d = a * 6.95 * 0.97;break; case 93:d = a * 7.44 * 0.97;break; case 97:d = a * 7.93 * 0.97;break; } printf("%.2f",d); } return 0; }
第一步:定义加油量a,汽油品种b,服务类型c(m,e),应付金额d
第二步:当服务类型为m时,列出各种品种汽油应付金额
第三步:当服务类型为e时,列出各种品种汽油应付金额
第四步:输出应付金额
流程图:
错误:if大条件下没加{ }
解决方法:仔细检查后,补上{}
在dev上尝试后在pta上正确
7-3
#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=a; a=c; c=t;} if(b>c) {t=b; b=c; c=t;} printf("%d->%d->%d",a,b,c); return 0; }
第一步 :定义a,b,c,t变量
第二步:从小到大排列,由此若a>b时,须将a,b两值交换,a>c,b>c时同理
第三步:按a,b,c顺序输出即可
流程图:
由于此题做过,无问题。
7.4
#include <stdio.h> int main() { int a,b; char ch; scanf("%d %c %d",&a,&ch,&b); switch (ch) { 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; }
第一步:定义并输入操作数a,b及一个字符ch
第二步:循环结构,写出字符为不同情况时的分类,并写出错误情况
第三步:输出每步结果
流程图:
错误:输入时又忘记加&号,结果说是段错误
解决办法;仔细检查,发现问题
要求三
人
https://coding.net/u/asdfg145632/p/a4/git
要求四:个人总结:(1)本周主要学习了循环语句结构,懂得了如何利用循环解决问题,收获了解决问题的新思路和方法。
(2)本周所学流程图如何设计是难点以及刚学系switch不熟练的问题
(3)老师上课形式很不错,多给了学生自己练习的时间,且将学生作业和遇到问题讲的很明白
要求五:
http://www.cnblogs.com/wangzhiheng/p/7797353.html