统计一批学生的成绩,求平均分及各个区间段的人数

输入一批学生成绩,以-1作为结束标记。
统计这批学生中不及格(<60)、及格(60-69)、中(70-9)、良(80~89)、优(>90)的人数。
求这批学生的平均分。

img

#include<stdlib.h>
#include<stdio.h>
int main(void)
{
float sum=0.0,avg=0.0;
int num,count,c9,c89,c78,c67,c6;
num=count=c9=c89=c78=c67=c6=0;
scanf("%d",&num);
while(num>=0 && num<101)
{ sum=sum+num;
count=count+1;
if(num>=90) c9=c9+1;
else {
if(num>=80 && num<90) c89=c89+1;
else {
if(num>=70 && num<80) c78=c78+1;
else
{ if(num>=60 && num<70) c67=c67+1;
else c6=c6+1;

}
}
} scanf("%d",&num);
}
avg=sum/count;
printf("全班平均成绩为:%f\n",avg);
printf("90分以上的(包括90分)的人数是:%d\n",c9);
printf("8090分(包括80分)的人数是:%d\n",c89);
printf("70
80分(包括70分)的人数是:%d\n",c78);
printf("60~70分(包括60分)的人数是:%d\n",c67);
printf("60分以下的人数是:%d\n",c6); system ("pause");return 0;


Scanner scanner = new Scanner(System.in);
        int num = 1;
        Map<String, Integer> map = new HashMap<>(8);
        double sum = 0D;
        while (true) {

            // 只能接收数字
            if (scanner.hasNextDouble()) {
                double value = scanner.nextDouble();
                if (value==-1) {
                    // 结束
                    break;
                }
                String line = String.valueOf(value);

                // 统计分数加入到Map中
                if (value < 60) {
                    Integer buJiGe = map.get("buJiGe") == null ? 1 : map.get("buJiGe") + 1;
                    map.put("buJiGe", buJiGe);
                } else if (value >= 60 && value <= 69) {
                    Integer jiGe = map.get("jiGe") == null ? 1 : map.get("jiGe") + 1;
                    map.put("jiGe", jiGe);
                } else if (value >= 70 && value <= 79) {
                    Integer zhong = map.get("zhong") == null ? 1 : map.get("zhong") + 1;
                    map.put("zhong", zhong);
                } else if (value >= 80 && value <= 89) {
                    Integer liang = map.get("liang") == null ? 1 : map.get("liang") + 1;
                    map.put("liang", liang);
                } else {
                    Integer you = map.get("you") == null ? 1 : map.get("you") + 1;
                    map.put("you", you);
                }
                // 累加分数
                sum += value;
                num++;
            } else {
                System.out.println("你录入的类型不正确,请重新输入");
            }
        }

        // 打印各个分段的数量

        System.out.println("不及格的人数为:" + map.get("buJiGe"));
        System.out.println("及格的人数为:" + map.get("jiGe"));
        System.out.println("中等的人数为:" + map.get("zhong"));
        System.out.println("良好的人数为:" + map.get("liang"));
        System.out.println("优秀的人数为:" + map.get("you"));

        // 减1的原因是,最后一次录入的数据为"-1"
        double avg = sum / (num - 1);
        System.out.println("全班平均分为:" +String.format("%.1f",avg));
public class Test{
public static void main(String[] args) {
        System.out.print("录入数据:\n");
        int num = 1;
        Map<String, Integer> map = new HashMap<>(8);
        double sum = 0D;
        while (true) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("第" + num + "个数据:");
            // 只能接收数字
            if (scanner.hasNextDouble()) {
                double value = scanner.nextDouble();
                String line = String.valueOf(value);
                if (line.equals("-1") || line.equals("-1.0")) {
                    // 结束
                    break;
                }
                // 统计分数加入到Map中
                if (value < 60) {
                    Integer buJiGe = map.get("buJiGe") == null ? 1 : map.get("buJiGe") + 1;
                    map.put("buJiGe", buJiGe);
                } else if (value >= 60 && value <= 69) {
                    Integer jiGe = map.get("jiGe") == null ? 1 : map.get("jiGe") + 1;
                    map.put("jiGe", jiGe);
                } else if (value >= 70 && value <= 79) {
                    Integer zhong = map.get("zhong") == null ? 1 : map.get("zhong") + 1;
                    map.put("zhong", zhong);
                } else if (value >= 80 && value <= 89) {
                    Integer liang = map.get("liang") == null ? 1 : map.get("liang") + 1;
                    map.put("liang", liang);
                } else {
                    Integer you = map.get("you") == null ? 1 : map.get("you") + 1;
                    map.put("you", you);
                }
                // 累加分数
                sum += value;
                num++;
            } else {
                System.out.println("你录入的类型不正确,请重新输入");
            }
        }

        // 打印各个分段的数量
        System.out.println("数据录入结束,统计结果如下:\n");

        System.out.println("不及格的人数为:" + map.get("buJiGe"));
        System.out.println("及格的人数为:" + map.get("jiGe"));
        System.out.println("中等的人数为:" + map.get("zhong"));
        System.out.println("良好的人数为:" + map.get("liang"));
        System.out.println("优秀的人数为:" + map.get("you"));

        // 减1的原因是,最后一次录入的数据为"-1"
        double avg = sum / (num - 1);
        System.out.println("平均成绩为:" + avg);
    }
}

有用就关注,点赞