完整程序
`java
package com.imooc;//包声明
import java.util.Scanner;//获取Scanner工具包
public class number1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);//
int classNum=3;//班级数
int stuNum=4;//学生数
int i=1;//初始变量i
int j=1;//初始变量j
double sum=0;//总分
double avg=0;//平均分
while (i<=classNum){//外层循环控制班级数
System.out.println("正在输入第"+i+"个班的成绩");//输出正在输入第几个班
while(j<=stuNum){//内层循环控制学生数
System.out.println("请输入第"+j+"个学生的成绩");//输出正在输入第几个学生
int score=input.nextInt();//获取用户输入
sum=sum+score;//成绩累加求和
j++;//学生数+1
}
avg=sum/stuNum;
System.out.println("第"+i+"个班的平均分为"+avg);
i++;
sum=0;
j=1;//***学生编号重置***
}
}}
编写程序中主要问题在于最后一行忘了使j回复初始值,导致程序输入一个班级得出平均分后无法输入第二个和第三个班级
改进:自定义输入班级数和人数 求平均分
如果要自定义输入班级数和人数,就需要使用Scanner工具包获取用户输入信息
package com.imooc;
import java.util.Scanner;
public class number1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入班级数");
int classNum=input.nextInt();//定义班级数
int i=1;
int j=1;
double sum=0;
double avg=0;
while (i<=classNum){
System.out.println("请输入第"+i+"个班级的人数");
int stuNum=input.nextInt();//定义该班级学生数
System.out.println("正在输入第"+i+"个班的成绩");
while(j<=stuNum){
System.out.println("请输入第"+j+"个学生的成绩");
int score=input.nextInt();
sum=sum+score;
j++;
}
avg=sum/stuNum;
System.out.println("第"+i+"个班的平均分为"+avg);
i++;
sum=0;
j=1;
}
主要更改的部分在于在外层循环外定义可输入的classNum以完成对班级数的采集,在外层循环与内层循环之间定义stuNum以完成对该班级学生数的采集