录入限定大小的学生分数

先输入学生人数,再挨个输入学生分数,最后求平均分。分数在0到100间,超了要报错并重新录入。例如:
输入学生人数:3
输入学生一成绩:50
输入学生二成绩:110
错误!请重新输入。。
输入学生二成绩:50
输入学生三成绩:50
平均分为:50
现在遇到的问题是没法报错,且每次成绩输入都是显示输入学生一的成绩,没有后面的。
求各位帮助

该回答内容部分引用GPT,GPT_Pro更好的解决问题
解决这个问题的思路是:

  1. 首先定义一个学生分数的变量,定义变量的类型为int类型。
  2. 使用一个while循环判断输入的学生分数是否在0到100之间,如果超了范围,那么就提示“错误!请重新输入”。
  3. 在while循环中,定义一个变量来累加每次输入的分数,最后输入完毕后,将这个变量除以学生人数,得出平均分数。

以下是具体的代码实现:

// 定义学生分数变量
int score;
// 初始化总分数
int totalScore = 0;
// 输入学生人数
int num;
Scanner reader = new Scanner(System.in); 
System.out.println("请输入学生人数:");
num = reader.nextInt(); 
// 进行循环输入学生分数
for(int i=1;i<=num;i++){
    System.out.println("请输入学生"+i+"成绩:");
    // 判断是否超出0-100之间的范围,如果超出则报错并重新录入
    while(true){
        score = reader.nextInt(); 
        if(score<0||score>100){
            System.out.println("错误!请重新输入。");
        }else{
            // 计算总分数
            totalScore += score;
            break; 
        } 
    } 
} 
// 计算平均分数并打印出来
double avgScore = (double)totalScore/num; 
System.out.println("平均分为:"+avgScore); 

如果回答有帮助,望采纳。

这个是对chatGPT回答的修改

import java.io.*;
import java.util.*;
public class HelloWorld {
    public static void main(String []args) {
        Scanner reader = new Scanner(System.in); 
        // 定义学生分数变量 记录总分数 保存学生人数
        int score,sum = 0,num;
        // 输入学生人数
        System.out.println("请输入学生人数:");
        num = reader.nextInt(); 
        // 进行循环输入学生分数
        for(int i=1;i<=num;){
            System.out.println("请输入学生"+i+"成绩:");
            score = reader.nextInt(); 
            // 判断是否超出0-100之间的范围,如果超出则报错并重新录入
            if(score<0||score>100){
                System.out.println("输入错误!");
                continue;
            } 
            i++;
            // 计算总分数
            sum += score;
        } 
        // 计算平均分数并打印出来
        double avgScore = (double)sum/num; 
        System.out.println("平均分为:"+avgScore); 
    }
}


代码:

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        int countStu;
        while(true){
            System.out.print("请输入学生人数:");
            countStu = scanner.nextInt();
            boolean flag = true;
            for (int i = 1; i <= countStu; i++) {
                System.out.print("输入学生"+i+"的成绩:");
                int temScore = scanner.nextInt();
                if (temScore < 0 || temScore > 100){
                    System.out.println("错误!请重新输入。。");
                    flag = false;
                    sum = 0;
                    break;
                }
                sum += temScore;
            }
            if (!flag){
                continue;
            }
            break;
        }
        System.out.println("平均分为:" + (sum / countStu));
    }

结果:

请输入学生人数:3
输入学生1的成绩:100
输入学生2的成绩:102
错误!请重新输入。。
请输入学生人数:3
输入学生1的成绩:100
输入学生2的成绩:100
输入学生3的成绩:100
平均分为:100

Process finished with exit code 0