作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292
第七次作业7-4查询水果价格
#include<stdio.h> int main(void) { printf("[1] apple [2] pear [3] orange [4] grape [0] exit "); int a, k; for(a=0;a<=4;a++){ scanf("%d",&k); if(k==0){ break; } switch(k){ case 1:printf("price = 3.00 "); break; case 2:printf("price = 2.50 "); break; case 3:printf("price = 4.10 "); break; case 4:printf("price = 10.20 "); break; default:printf("price = 0.00 "); break; } } return 0; }
第一步:将每个水果名称编号
第二步:设定四次循环
第三步:将输入编号的对应价格设为输出结果
第四步:程序运行完毕,归零。
出现的错误:运行超时
调试如下:
总结错因:未在每个步骤后加入终止指令导致程序无限循环。
改正方式:在每个步骤后加入break;
第八次作业8-1求奇数和
#include<stdio.h> int main() { int num,a; for(;;){ scanf("%d",&a); if(a<=0){ break; } if(a%2!=0){ num=num+a; } } printf("%d",num); return 0; }
第一步:输入num,输入a
第二步:判定,若a>0,进行下一步,若a<0,结束循环
第三步: 判定,若a为奇数,num加和,否则直接进入下一循环
第四步:循环结束,输出奇数和
流程图如下:
出现的错误:本题并未出现错误。
注意:条件a>=0为a%2!=0的前提,一定要分清前后顺序。
第十次作业 7-2猜数字游戏
#include<stdio.h> int main() { int number, yournumber = 0, n, i = 0; scanf("%d %d", &number, &n); while(1) { scanf("%d",&yournumber); if(yournumber == number) { if(i == 0) { printf("Bingo!"); } else if(i > 0 && i < 3) { printf("Lucky You!"); } else { printf("Good Guess!"); } break; } else if(yournumber > number) { printf("Too big "); i++; } else if(yournumber < number && yournumber >= 0) { printf("Too small "); i++; } if(i >= n || yournumber < 0) { printf("Game Over"); break; } } return 0; }
缩略图如下:
第一步:输入要猜的数字,次数
第二步:输入猜测的数字
第三步:判定数字是否正确
第四步:若正确,根据输入次数输出不同结果
第五步:若错误,根据所猜数大小输出过大或过小的提示,若次数未用完进行下一循环,若次数用完或输入负数,则输出游戏结束
出现错误:部分正确
分析原因:由于结束语句与判定并列,导致循环时未经过该判定,导致系统不限制猜数次数。
解决方案:36行else if改为if
总结:通过这个月的学习,我发现要多加注意各个步骤的先后顺序和各个重要语句的优先性,现在的学习已经不止步于按照格式将代码罗列了,更要注意思考,发现规律。
https://www.cnblogs.com/liuweiliuwei/p/10016885.html#4127450 刘伟
https://www.cnblogs.com/asdfghjklasdfghjkl/p/10003892.html 孙成龙