关于数组的问题(望有经验者给个祥细说明,为什么出错,谢谢 !)
程序代码: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门成绩的错误输出?这 是怎么一回事啊~望有经验者祥细说明一下好吗?








x[i][j] 写成了 x[j][i]了