首页 > 其他 > 详细

第三次作业(2)

时间:2018-11-26 00:57:18      阅读:210      评论:0      收藏:0      [点我收藏+]

开头小结:又经过了几周的学习,这几周学习的依然是循环语句,那么来看一看这几周的难题吧。

第7次作业:7-3 统计学生平均成绩与及格人数

实验代码:

//本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
//77 54 92 73 60
#include <stdio.h>
int main(void)
{
    int i=0,n=0,count=0,sum=0,grade=0;
    double average=0;
    scanf("%d",&n);
    if(n==0){
        printf("average = 0.0\n");
        printf("count = 0\n");
    } 
    
    else{
    for(i=1;i<=n;i++){
        scanf("%d",&grade);
        sum=sum+grade;
        if(grade>=60){
            count++;
        }
        
    }
    average= sum*1.0/n;
    printf("average = %.1f\n",average);
    printf("count = %d",count);}
 } 

 解题思路:这道题还是比较简单的,但是有一些易错点。

1.首先这道题先定义几个变量,需要平均成绩,输入的人数,以及及格人数,以及循环需要的i,想求平均成绩就需要先加和sum这几个变量。

2.做这道题还需要考虑当输入人数为0时会输出什么,因此需要用到if-else语句来判断n是否等于0,当等于0时,输出平均成绩0与及格人数0.

3.当n!=0时,这是进入循环,输入人数,输入成绩,进行计算与统计;

4.最后输出平均成绩与及格人数。

流程图:

技术分享图片

运行结果:

技术分享图片

遇到的错误:

当输入n=0时,如果平均成绩不是0.0,那么PTA运行结果就是错的,这跟题里说的保留一位小数有关,错误结果如下;

技术分享图片

看似是对的,但PTA却显示错误,正是因为在判断n是否等于0时的输出语句average=0而不是0.0;

调试:

技术分享图片

经过调试,没什么错误;

第八次作业:7-2 寻找250

第八次作业我选择了比较有趣的一道题,那就是寻找250,虽然题目简单,但是符合所学知识,即while语句的循环;

代码:

#include <stdio.h>
int main(void)
{
    int i,num; 
    while(num!=250){
    scanf("%d",&num);
        i++;
    }
    printf("%d",i);
    return 0;
}

解题思路:

这道题目的是让用户输入一堆数字,再输入数字中找到第多少位是250这个数字,并输出位数;

1.定义变量i,num;

2.开始循环,当num!=250时开始循环,用户开始输入数字;

3.当输入一个不是250的数字,i++;

4.输出位数;

流程图:

技术分享图片

运行结果:

技术分享图片

技术分享图片

运行结果没什么问题

错误结果:

因为这道题比较简单,因此没什么错误;

调试:

技术分享图片

技术分享图片

经过调试,没什么错误。

第九次作业:7-2 猜数字游戏

这道题思路清晰但是代码特别复杂,要求特别多,也用到了循环;

代码:

#include <stdio.h>
int main(void)
{
    int mynum=0,yournum=0,n=0,count=0;
    scanf("%d%d",&mynum,&n);
    while(mynum>0&&mynum<100){
        count++;
        if(count>n){
            printf("Game Over");
            break;}
        scanf("%d",&yournum);
        if(yournum<0){
            printf("Game Over");
            break;
        }
        else if(yournum>mynum){
            printf("Too big\n");
        }
        else if(yournum<mynum){
            printf("Too small\n");
        }
        else{
            if(count==1) {
            printf("Bingo!\n");
            break;}
            else if(count>1&&count<=3){
            printf("Lucky You!\n");
            break;}
            else(count>3&&count<=n);{
                printf("Good Guess!\n");
                break;
            }
            break;
        }
        }
            return 0;
}

 

解题思路:

1.定义变量,我的数字,你的数字,次数,count;

2.输入我的数字与输入次数;

3.如果我的数字>0&&<100进行循环;

4.进行判断,younum与mynum进行判断,当输入一个小于0的数,游戏结束;

5.每输入一次进行count++;最后比较count与n的的值,进行输出不同的结果;

流程图:

技术分享图片

这图有点崩,凑合看吧;

运行结果:

技术分享图片

调试:

技术分享图片

技术分享图片

经调试没什么问题;

总结:

通过几天的学习,我了解到for循环中先执行前两条语句,在执行循环体,最后执行for循环的最后一条语句,而while语句则先进行判断,如果语句为真,则开始循环,为假则进行下一条语句,do-while则先进行循环语句,在进行判断。

遇到的问题:

循环体有点难以思考,不太好写,计算素数那道题还是有一些问题;

 

第三次作业(2)

原文:https://www.cnblogs.com/chengxu230921/p/10017973.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!