0
点赞
收藏
分享

微信扫一扫

HDOJ--2023 求平均成绩


Problem Description


假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。





Input


输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。




Output


对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。
每个测试实例后面跟一个空行。




Sample Input


2 2
5 10
10 20




Sample Output



7.50 15.00
7.50 15.00
1



import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
int m=sc.nextInt();
int arr[][] = new int[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
arr[i][j]=sc.nextInt();
}
}

//計算每個學生的平平均成績
double avgstu[] =new double[n];
//計算第i個學生的平均成績
for(int i=0;i<n;i++){
double sum=0;
for(int j=0;j<m;j++){ //計算學生的總成績
sum+=arr[i][j];
}
avgstu[i]=sum*1.0/m;
}
for(int i=0;i<n-1;i++){
System.out.printf("%.2f ",avgstu[i]);
}
System.out.printf("%.2f\r\n",avgstu[n-1]);

//計算每門課熱的平均成績
double avgcourse[]=new double[m];
for(int i=0;i<m;i++){
double sum=0;
for(int j=0;j<n;j++){ //計算第i科每科的平局成績
sum+=arr[j][i];
}
avgcourse[i]=sum*1.0/n;
}
for(int i=0;i<m-1;i++){//輸出每門課的平均成績
System.out.printf("%.2f ",avgcourse[i]);

}
System.out.printf("%.2f\r\n",avgcourse[m-1]);

int num=0;

// 統計個個學生的各門成績均大於各科成績的人數
for(int i=0;i<n;i++){
int count=0;
for(int j=0;j<m;j++){
if(arr[i][j]>=avgcourse[j]){//第i個學生的第j門課大於第j門課的平均成績
count++;

}
}
if(count==m){
num++;
}
}
System.out.println(num);
System.out.println();
}
}
}

举报

相关推荐

0 条评论