HDU2023求平均成績 - biaobiao88

 題目連接:http://acm.hdu.edu.cn/showproblem.php?pid=2023php

求平均成績

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
 
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     double m,n;
 8     while(cin >> n >> m)//n個學生,m個科目 
 9     {
10         double fenshu[51][6] = {0},fen[51] = {0};//fenshu二維數組記錄每一個學生的各科分數,fen一維數組記錄某一學生的總分 
11         for(int i = 0;i < n;i++)
12         {
13             for(int j = 0;j < m;j++)
14             {
15                 cin >> fenshu[i][j];//循環讀入n*m個成績數據 
16                 fen[i] += fenshu[i][j];//對每一個學生的成績進行累加,而且記錄在一維數組fen中 
17             }
18         }
19         //輸出第一行 
20         for(int i = 0;i < n;i++) //注意控制輸出格式,求出每一個學生的平均成績 
21         {
22             if(i == n - 1)
23                 printf("%.2lf",fen[i] / m);
24             else
25                 printf("%.2lf ",fen[i] / m);
26         }
27         cout << endl;
28         //輸出第二行 
29         double ave1[6] = {0},ave2[6] = {0};//ave1數組記錄各科的總分,ave2數組記錄各科的平均分,注意輸出時的格式 
30         for(int j = 0;j < m;j++)//外層循環爲j 至關於對某一列求總和 
31         {
32             for(int i = 0;i < n;i++)//內層循環爲i//首先對各科的分數累加 
33                 ave1[j] += fenshu[i][j];
34             ave2[j] = ave1[j] / n;//取平均 
35             if(j == m - 1)
36                 printf("%.2lf",ave2[j]);
37             else
38                 printf("%.2lf ",ave2[j]);
39         }
40         cout << endl;
41         //計算有幾個學生的各科成績都大於平均成績的 
42         int temp,count = 0;
43         for(int i = 0;i < n;i++)//依次遍歷 
44         {
45             temp = 0;
46             for(int j = 0;j < m;j++)
47                 if(fenshu[i][j] >= ave2[j])//依題意,若是學生的某一學科的成績會大於等於這個學科的平均成績,那麼臨時變量temp加一 
48                     temp++; 
49             if(temp == m)//說明若是學生的m個學科的成績都大於各個學科的平均成績,則符合條件,計數器加一 
50                 count++;
51         }
52         cout << count << endl << endl;//注意輸出格式 
53     }
54     return 0;
55 }

 

 這其實是一道水題,在咱們學校上的測試平臺上是 萌新題,我作了2-3個小時,我哭了/(ㄒoㄒ)/~~ios

思路是這樣的,可將輸入學生的成績當作一個矩陣,最後只需對矩陣的行和列進行處理與判斷就行了,太水了我/(ㄒoㄒ)/~~數組

相關文章
相關標籤/搜索