zoukankan      html  css  js  c++  java
  • 第三次作业(2)

    作业要求 :【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359】                                                                                                                                                                                                           开头小结:又经过了几周的学习,这几周学习的依然是循环语句,那么来看一看这几周的难题吧。

    第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
    ");
            printf("count = 0
    ");
        } 
        
        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
    ",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
    ");
            }
            else if(yournum<mynum){
                printf("Too small
    ");
            }
            else{
                if(count==1) {
                printf("Bingo!
    ");
                break;}
                else if(count>1&&count<=3){
                printf("Lucky You!
    ");
                break;}
                else(count>3&&count<=n);{
                    printf("Good Guess!
    ");
                    break;
                }
                break;
            }
            }
                return 0;
    }

    解题思路:

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

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

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

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

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

    流程图:

    运行结果:

    调试:

    经调试没什么问题;

    总结:

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

    遇到的问题:

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

     

    评论博客【https://www.cnblogs.com/wangxiangbo/p/9948484.html】

    评论博客【https://www.cnblogs.com/1a2B3c4D/p/10017402.html】

    评论博客【https://www.cnblogs.com/zcybky/p/10022913.html】

  • 相关阅读:
    Qt下如何修改文件的时间(全平台修改)
    Qt在windows 平台操作保存execel的表格(通过QAxObject来操作)
    VirtualTreeView控件
    VS2013设置release版本可调试
    工程脚本插件方案
    decode函数
    一个消息调度框架构建
    数据访问模式之Repository模式
    Angular.js Services
    OpenCascade简介
  • 原文地址:https://www.cnblogs.com/chengxu230921/p/10017973.html
Copyright © 2011-2022 走看看