hdu-求平均成績
阿新 • • 發佈:2019-01-31
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 分析:
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 分析:
#include <iostream> #include <iomanip> #include <cstring> using namespace std; int main() { int m,n; double sum1[200],sum2[200]; double a[200][200]; while (cin>>n>>m) { memset(sum1,0,sizeof(sum1)); memset(sum2,0,sizeof(sum2)); int i,j; for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { cin>>a[i][j]; sum1[i]+=a[i][j]; sum2[j]+=a[i][j]; } } for( i=0; i<n; i++) if(i==0) cout<<fixed<<setprecision(2)<<sum1[i]*1.0/m; else cout<<" "<<fixed<<setprecision(2)<<sum1[i]*1.0/m; cout<<endl; for( j=0; j<m; j++) if(j==0) cout<<fixed<<setprecision(2)<<sum2[j]*1.0/n; else cout<<" "<<fixed<<setprecision(2)<<sum2[j]*1.0/n; cout<<endl; int count=0; bool yes; for( i=0; i<n; i++) { yes=true; for( j=0; j<m; j++) { if(a[i][j]<sum2[j]*1.0/n) { yes=false; break; } } if(yes) count++; } cout<<count<<"\n"<<endl; } return 0; }