一,PTA实验作业
题目一
1.代码
int N,i; double h; //h定义身高 char sex; //sex代表性别 scanf("%d",&N); //N代表查询的用户数 for(i=0;i
2.设计思路
- (1)定义浮点型变量h代表身高,字符型变量sex代表性别,“F”表示女性、“M”表示男性
- (2)输入前来查询的用户数N
- (3)输入性别和身高
- (4)如sex=='F',输出最佳情侣身高(h*1.09),结果保留两位小数
- (5)如sex=='M',输出最佳情侣身高(h/1.09),结果保留两位小数
(6)如果i<N,循环(3),直到i>=N
3.本题调试过程碰到问题及解决办法
(1)在scanf输入时%c前面未用空格间隔开,导致在输出时回车键被当作数据吸收了,后来看群里面有同学提出来,长知识了。
4.本题PTA提交列表
题目二
1.代码
int a,n,s,i,sum; //n代表n个a,sum用来存放第I项的数值,s用来存放总数值 scanf("%d%d",&a,&n); s=0; sum=0; for(i=1;i<=n;i++){ sum=sum*10+a; //表示各项的和 s=s+sum; //表示总和
2.设计思路
- (1)定义变量a,n,s,i,sum,n代表n个a,sum用来存放第I项的数值,s用来存放总数值
- (2)初始化s=0;sum=0;
- (3)输入a,n;
- (4)i<=n进入循环,第i项为sum=sum*10+a,总数值为s=s+sum;
- (5)i>时循环结束,否则继续循环(4)
(6)输出s
3.本题调试过程碰到问题及解决办法
(1)本题主要是理解题目,理解就容易懂了,没有疑难
4.本题PTA提交列表
题目三
1.代码
int n,min,i,number; //min代表最小值,num表示输入的数值 scanf("%d",&n); min=number; if(n>1){ for(i=1;inumber) //判断两者的大小 min=number; //根据条件进行互换 } printf("min = %d",min);} else if(n==1){ scanf("%d",&number); //当输入值为一个数值的情况 printf("min = %d",number);} else printf("no"); return 0;
2.设计思路
- (1)定义number表示输入的数值,min代表最小值
- (2)给min初始值min=number
- (3)输入number
- (4)若min>number,则min与number互换数值
- (5)若min<number,则min保留原来数值
(6)当i>=n时输出min,否则继续循环(3)(4)(5)
3.本题调试过程碰到问题及解决办法
(1)本题主要不懂在循环里面进行大小互换,因为之前进行大小比较都是比较大小,而不要求互换,但书本里面有相似的例题,看了例题就懂得了
4.本题PTA提交列表
题目四
1.代码
int num,N,flag; //N代表猜的次数,num代表系统的数值,yournumber代表自己猜的数值 int yournumber; flag=0; int count; scanf("%d%d",&num,&N); do{ scanf("%d",&yournumber); count++; //count代表猜的第i次,并根据数据的输入进行累加 if(yournumber<0){ printf("Game Over\n"); //小于0的情况 flag=1; } else if(yournumbernum){ //大于系统值的情况 printf("Too big\n"); } else{ if(count==1){ //表示第一次猜中 printf("Bingo!\n"); } else if(count<=3){ //表示在三次在内猜中 printf("Lucky You!\n"); } else{ //表示大于3次和猜中的输出 printf("Good Guess!\n"); } flag=1; } if(count==N){ // 当第i项等于猜的次数时的输出情况 if(!flag ){ printf("Game Over\n"); flag=1;
2.设计思路
- (1)定义num表示系统的数值,N代表猜的次数,yournumber代表猜的数值,flag来控制循环的继续与结束,count表示第i次猜的数
- (2)输入系统的值和猜的次数
- (3)输入猜的值
- (4)如果yournumber<0,输出Game Over,并结束本次循环
- (5)如果yournumber<num,输出Too small,并结束本次循环
- (6)如果yournumber>num,输出Too big,并结束本次循环
- (7)如果yournumber=num,并且count=1,输出Bingo,并结束本次循环
- (8)如果yournumber=num,并且count <=3,输出Lucky You,并结束本次循环
- (9)如果yournumber=num,并且count >3,输出Good Guess,并结束本次循环
- (10)如果yournumber不等于number并且i等于N,输出Game Over,并结束本次循环
(11)否则继续循环(3)(4)(5)(6)(7)(8)(9)(10)
3.本题调试过程碰到问题及解决办法
- (1)不懂得如何结束循环,上课后知道可以用break和flag=1,flag=0来结束循环
(2)猜中时的次数为1和小于3的情况不懂得分支,请教同学,同学说这样设计太过复杂,但是还是坚持下来了,也懂得了分支里面在分支的应用
4.本题PTA提交列表
二,截图本周题目集的PTA最后排名。
三,本周学习总结
1.你学会了什么?
- (1)本周学到了循环结构的应用,还有while和for语句之间的差别
- (2)学到了提前结束循环的方法
(3)也懂得了如何用调试来找出自己的错误在哪里
2.本周的内容你还不会什么?
- (1)镶嵌循环的运用,现在只有参照书本才能勉强进行设计算法和具体编译
(2)continue语句老师上课虽然讲过,自己也懂得它代表的意思,但具体编译起来还是得慢慢回想和参考书本
3.分支结构上机考试总结
- (1)平时写PTA不懂就翻书,到了考试没有书本,导致最基础的单词都写错
- (2)不够细心,题目看个大概就开始敲代码,结果也是答案部分正确,
- (3)被时间转换的那道题卡住,因为不懂得字符:如何输入
(4)针对这次考试,我发现了自己的太多问题也学到了很多东西,不够认真,不够细心,也对自己很失望,学到了字符的输入,分支与循环的结合运用。在以后的学习中我会将这些错误改正过来,掌握好所学知识,订个小目标,下次要提前完成考试。
posted on 2017-11-01 20:09 阅读( ...) 评论( ...) 收藏