博客园第二次作业
(一)
pta第一次作业(统计学生成绩)
(1)实验代码
#include<stdio.h> int main(void) { int x; int i,m; int a=0,b=0,c=0,d=0,e=0; scanf("%d",&x); for(i=0;i<x;i++){ scanf("%d",&m); if(m>=90){ a++; }else if(m>=80){ b++; }else if(m>=70){ c++; }else if(m>=60){ d++; }else{ e++; } } printf("%d %d %d %d %d\n",a,b,c,d,e); return 0; }
(2)设计思路
第一步:审题是关键,首先读完题目确定我们需要几个变量分别都用来干什么,有题目可知我们有五个分数段的学生数目要统计,所以先设定五个计数,分别用来记录各个分数段有多少个人。
第二部:每次输入一个数据就要进行一次判断,确定该分数属于哪个分数段,所以我们要输入7个成绩要进行七次判断,所以我选择用for语句的循环体,用i来限制循环的次数,再结合if判断语句;来确定每次输入的数据属于哪个分数段内。最后便可以输出答案
流程图
(3)本题调试过程碰到问题及解决办法
(1)出现问题后把代码复制到devc++上进行调试,发现该程序的的问题在于题目条件没有完全满足。通过设置零点一步一步运行,可以发现当输入的值为77时首先进行第一个判断语句然后满足x>60的条件,d++,实际上77应该是满足第三个分数段内的,所以该程序没有考虑到这个问题。
修改:我改变了程序判断条件的顺序,这样就可以是程序正确运行,if语句从上往下依次判断,首先判断最大的90分数段的,以此类推就可以避免之前错误的情况。
pta第二次作业(三天打鱼两天晒网)
(1)实验代码
#include<stdio.h> int main(){ int N, i; scanf("%d", &N); i=N%5; if(i<=3&&i!=0) printf("Fishing in day %d",N); else printf("Drying in day %d",N); return 0; }
(2)设计思路
审题之后我们发现五个为一个循环,只要对输入的数字进行求余即可,然后判断余数为多少,若<3则为打鱼,其次则为晒网,并且要注意整除的情况下也为晒网。题目很简单。思路很清晰。
流程图
(3)本题调试过程碰到问题及解决办法
解决方法:出现问题后在devc++上进行反复带入数字进行检验该程序的正确性,然后发现该程序当N能够被5整除是应该属于晒网阶段,但是该程序求余之后的数字i<=3包括了晒网阶段,认为该天为打鱼阶段。
只要在if判断语句中加上并且i不等于1.则结果就正确了。
(二)总结和学习进度条
1、总结这几周所学内容、遇到的问题以及解决方法。
最近几周老师在课上教的循环也好分支结构也好,首先我觉得理解上面很有困难,在面对一个编程题目的时候无从下手,仅仅是停留在可以按照书上打代码的阶段,不能进行独立的思考,没有整体的编程概念。通过mooc上的视频进行反复了解。听完实体课,再听网课,反复进行训练。显示书上的习题搞懂之后,再进行适当的改变过程。在网上也能找到初学者可以进行编写的c语言程序,进行反复练习,最后达到可以基本掌握这些结构和基本的题目解题思路。
2、点评3个同学的本周作业(在作业中给出被点评同学博客的超链接!超链接!),并邀请3名同学点评你的作业,无点评作业倒扣该题分数。
(1)于海龙作业评价超链接 (2)祝传令作业评价超链接(3)唐卫栋作业评价超链接
3、请用表格和折线图呈现你这几周的代码行数和时间、博客字数和时间、涉及的知识点。