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

    作业要求:【https://www.cnblogs.com/c-programing-language/p/9931659.html

    第七次作业7-3 统计学生平均成绩与及格人数 (15 分)

    本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

    输入格式:输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

    输出格式:按照以下格式输出:average = 成绩均值,count = 及格人数,其中平均值精确到小数点后一位。

    输入样例:5

        77 54 92 73 60

    输出样例:average = 71.2

        count = 4

    一.实验代码

    # include<stdio.h> 
    int main()
    {   int count,grade,i,N;
        double total,average;
        scanf("%d
    ",&N);
        total=0;
        count=0;
        for(i=1;i<=N;i++){
            scanf("%d",&grade);
            total=total+grade;
            average=total/N;
            if(grade>=60){
            count=count+1;}
        }
        printf("average = %.1lf
    ",average);
        printf("count = %d
    ",count);
        return 0;
    }

    二.解题思路

    1.步骤

    1).先定义整型变量count表示合格的人数,grade表示分数,N表示人的个数,total计算总分。

    2).先输入人的个数,然写出for循环,输入五个成绩。

    3).最后输出average和count。

    运行的结果:

    2.流程图

     

    三.调试过程碰到的问题及解决办法

    起初在for循环中忘记了写求average的代码,显示average=0.0,然后加上之后结果正确了。

    调试过程

    第九次作业7-2 输出闰年 (15 分)

    输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。

    输入格式:输入在一行中给出21世纪的某个截止年份。

    输出格式:逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。

    输入样例1:

    2048

    输出样例1:

    2004
    2008
    2012
    2016
    2020
    2024
    2028
    2032
    2036
    2040
    2044
    2048
    输入样例2:


    2000

    输出样例2:
    Invalid year!

    一.实验代码

    #include<stdio.h>
    int main()
    {
        int year,i,count;
        count=0;
        scanf("%d",&year);
        if(year<=2000||year>2100)
            printf("Invalid year!
    ");
        else{
            for(i=2001; i<=year; i++){
                if(i%4==0&&i%100!=0||i%400==0){
                    printf("%d
    ",i);
                    count++;
                }
            }
            if(count==0)
                printf("None
    ");
        }    
        return 0;
    }

    二.解题思路

    1.步骤

    1).定义整型变量year表示开始输入的年份,i表示要输出的闰年,count用来统计闰年的个数。

    2).一共有三种情况,一个是输入的年份不在2000-2100内,还有在大范围内,但是小范围内没有闰年。

    3).另外就是存在闰年,需要用if else来找出闰年最后输出出来。

    运行的结果:

     

    2.流程图

     

    三.调试过程碰到的问题及解决办法

     开始做的时候整个代码的大概能够想到,就是不知道在表示条件时的“或者”怎么打,所以我在网上查了下"||"表示或者。

    然后就遇到了点输出格式上的错误,循环输出时,要有“ ”换行。

    调试过程:

    输入year=2048

    进入循环体,i从2001开始直到2048,在其中输出能被4或100整除或者能被400整除的数,就为闰年,同时count会记录闰年个数。

    最后当i=2049时跳出循环输出闰年的结果。

    第十次作业7-4 最大公约数和最小公倍数 (15 分)

    本题要求两个给定正整数的最大公约数和最小公倍数。

    输入格式:输入在一行中给出两个正整数M和N(1000)。

    输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

    输入样例:  511 292

    输出样例:  73 2044

    一.实验代码

    #include<stdio.h>
    int main(){
        int M,N,i;
        scanf("%d %d",&M,&N);
        for(i=M;i>=1;i--){
            if(M%i==0&&N%i==0){
                printf("%d ",i);
                break;}
            }
        for(i=N;i<=M*N;i++){
            if(i%M==0&&i%N==0){
                printf("%d",i);
                break;}
        }
            return 0;
    }

    二解题思路

    1.步骤

    1).先定义整形变量M N i,输入M N的值。

    2).用for的循环和if的条件分别找最大公约数和最小公倍数。

    3).最后分别输出i表示最大公约数和最小公倍数。

    运行的结果:

    2.流程图

    三.调试过程碰到的问题及解决办法

    开始是因为不知道怎么求最大公约数和最小公倍数想了很长时间,后来知道应该用for循环和if的条件来求。

    求最大公约数时,i要等于两个数中比较大的,保证能在约数多的范围内找最大公约数,然后在循环中求M N除以i是否有余数,每次循环i都要减一,直到M N都被i整除时输出i。

    求最小公倍数时,i要等于两个数中较小的数,小于最大公倍数M*N,从最小的数开始找起,每次循环i要加一,直到i能同时被M和N整除时,输出i。

    调试过程:

    输入M和N

    开始进入循环

    当i等于73时,跳出第一个循环,M和N的最大公约数为73。

    开始进入第二次循环

    当i等于2044时,第二个循环结束,M和N的最小公倍数为2044。

     个人总结

    本周学习的重点就是循环语句的运用,平时比较习惯运用的就是for和while的循环语句,但是现在运用的还不够熟练,所以我应该多打一些类似的代码,增加自己的熟练度 ,同时有不会的要多问问别人,自己也要多查查相关的东西,使自己能够把循环语句更清晰熟练的运用。

    作业点评:

    1.https://www.cnblogs.com/chumengGTRlhz/p/9991154.html

    2.https://www.cnblogs.com/wafx/p/9998306.html

    3.https://www.cnblogs.com/abcdsjjs/p/10029383.html

  • 相关阅读:
    Spring Boot 2 快速教程:WebFlux 集成 Thymeleaf(五)
    Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)
    程序兵法:Java String 源码的排序算法(一)
    oracle等待事件以及解决方案
    记一次数据库参数compatible降级[转]
    R中统计假设检验总结(一)
    Kriging插值法
    数学建模小练习(1):插值【转】
    C++11 lambda表达式
    C++11 正则表达式——基础知识介绍
  • 原文地址:https://www.cnblogs.com/freedomjdp/p/9979139.html
Copyright © 2011-2022 走看看