博客园第二次作业

 

(一)

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、请用表格和折线图呈现你这几周的代码行数和时间、博客字数和时间、涉及的知识点。

 

 

posted on 2018-12-04 19:46  王肖12  阅读(315)  评论(12编辑  收藏  举报