日期:2014-05-20  浏览次数:20633 次

大神们 小弟我初学java 麻烦指教下
已知某个班有M个学生,学习N门课程,已知所有学生的各科成绩,编程:分别求每个学生的平均成绩,并输出。
要求:
? 定义一个二维数组,用于存放M个学生的N门成绩。定义一个一维数组,用于存放每个学生的平均成绩。
? 做二重循环,将每个学生的成绩输入到该二维数组中。
? 做二重循环,对已经存在于二维数组的中的值进行平均分计算,将结果保存到一个一维数组中。
? 做循环输出该一维数组(即平均分)的值。

------解决方案--------------------
public static void sum(int m,int n){
Scanner reader=new Scanner(System.in);
double[][] stu=new double[m][n];//定义一个二维数组存放m个学生的n门成绩
double[] grade=new double[m];
double sum=0;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
System.out.print("请输入第"+(i+1)+"个学生的第"+(j+1)+"门课的成绩:");
stu[i][j]=reader.nextDouble();
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
sum=sum+stu[i][j];
}
grade[i]=sum/n;
sum=0;
}
for(int i=0;i<grade.length;i++){
System.out.println("第"+(i+1)+"个学生的平均成绩是:"+grade[i]);
}
}
------解决方案--------------------
import java.util.*;
public class test {

public static void main(String[] args)
{
Scanner rd = new Scanner(System.in);
int M = rd.nextInt();
int N = rd.nextInt();
int[][] arr = new int[M][N];
int[] score = new int[M];
for(int i=0; i<arr.length; i++)
{
for(int j=0; j<arr[i].length; j++)
{
arr[i][j] = rd.nextInt();
}
}
putScoreFromArray(arr, score);
paint(score);
}

public static void putScoreFromArray(int[][] allStudentScore, int[] score)
{
int sum = 0;
for(int i=0; i<allStudentScore.length; i++)
{
for(int j=0; j<allStudentScore[i].length; j++)
{
sum += allStudentScore[i][j];
}
score[i] = sum / allStudentScore[0].length;
sum = 0;
}
}

public static void paint(int[] score)
{
for(int i=0; i<score.length; i++)
{
System.out.println("The " + (i+1) + " Student Average score is " + score[i]);
}
}
}

楼主凑合使