关于数组的问题(望有经验者给个祥细说明,为什么出错,谢谢 !)
程序代码:
import *; public class Scores { public static void main(String[] args)throws IOException { int max=0; int min=100; int sum=0; System.out.print("请输入学生人数:"); InputStreamReader reader=new InputStreamReader(System.in); BufferedReader input=new BufferedReader(reader); String temp=input.readLine(); //输入学生人数n int n=Integer.parseInt(temp); int [][]x=new int[n][5]; //录入成绩 for(int i=0;i<n;i++) { for(int j=0;j<5;j++) { System.out.print((i+1)+"号同学"+(j+1)+"号课程分数:"); temp=input.readLine(); x[i][j]=Integer.parseInt(temp); } } //计算并输出每一位同学的课程最高分、最低分和平均分 for(int i=0;i<n;i++) { for(int j=0;j<5;j++) { if(x[i][j]>max) max=x[i][j]; if(x[i][j]<min) min=x[i][j]; sum+=x[i][j]; } System.out.println((i+1)+"号同学的最高分:"+max); System.out.println((i+1)+"号同学的最低分:"+min); System.out.println((i+1)+"号同学的平均分:"+sum*1.0/5.0); max=0; min=100; sum=0; } //计算并输出每一门课程的班级最高分、最低分和平均分 [code][code] for(int j=0;j<5;j++) { for(int i=0;i<n;i++) { if(x[i][j]>max) max=x[i][j]; if(x[i][j]<min) min=x[i][j]; sum+=x[i][j]; } System.out.println((j+1)+"这门课程的最高分:"+max); System.out.println((j+1)+"这门课程的最低分:"+min); System.out.println((j+1)+"这门课程的平均分:"+sum*1.0/n); max=0; min=100; sum=0; }[/code]
}
}[/code]
当录入n=2,且成绩录入结束时,输出的没有问题
当我把其中的一部分代码改成了
for(int j=0;j<5;j++)
{
for(int i=0;i<n;i++)
{
if(x[j][i]>max)
max=x[j][i];
if(x[j][i]<min)
min=x[j][i];
sum+=x[j][i];
}
System.out.println((j+1)+"这门课程的最高分:"+max);
System.out.println((j+1)+"这门课程的最低分:"+min);
System.out.println((j+1)+"这门课程的平均分:"+sum*1.0/n);
max=0;
min=100;
sum=0;
}
输出从原来的5门成绩(正确的输出)变成了2门成绩的错误输出?这 是怎么一回事啊~望有经验者祥细说明一下好吗?