乙個班有n(n<=50)個學生,每人考m(m<=5)門課,求每個學生的平均成績和每門課的平均成績,並輸出各科成績均大於等於平均成績的學生數量。
input
輸入資料有多個測試例項,每個測試例項的第一行包括兩個整數n和m,分別表示學生數和課程數。然後是n行資料,每行包括m個整數(即:考試分數)。
output
對於每個測試例項,輸出3行資料,第一行包含n個資料,表示n個學生的平均成績,結果保留兩位小數;
第二行包含m個資料,表示m門課的平均成績,結果保留兩位小數;第三行是乙個整數,表示該班級中各科成績均大於等於平均成績的學生數量。
1)該題目有多個測試用例,且只說明n<=50與m<=5,並沒有限定大於0
錯誤想法:
//如果課程m為 0 則平均課程輸出0.00,學生按照個數輸出n個0.00
//如果學生n為 0 ,則平均學生成績輸出0.00,平均課程根據m輸出m個0.00
正確解決:
往程式中加入測試輸入資料是否有0的**
if
(n ==
0|| m ==0)
}
若輸入資料有0的情況,則進入死迴圈,若能順利完成,說明沒有該測試資料存在。
printf
("%.2f "
, a[i]
);
2)printf(%m.nf,輸出的數) 表示列印至少m個字元寬度(包括整數、小數點和小數字),n為小數字位數,如果輸出的數小數字不夠,則補0。
3)比較double型資料時,考慮精度問題…
bool
bijiao
(double x,
double y)
可以作差與1e-7進行比較,判斷兩者是否相等 用cout控制輸出小數的位數
採用格式控制符setprecision n 控制,或者流物件的成員函式precision n 使用時都要結合fixed使用,否則n指的是整數字數和小數字數的和 使用setprecision n 要加標頭檔案iomanip 1 precision 函式和fixed includeusing names...
acm 輸入輸出測試
1 巧用 scanf 當沒告訴你輸入幾個時 直接輸入一串數字,以空格分開,換行結束 int a maxn int n char c while scanf d c a n,c c n n 2 當沒告訴你有幾組資料時,只告訴你 每組資料的結束標誌,程式的結束標誌時 要採取順序結構的思想,while 判...
控制台輸入 輸出
1 使用input 方法可以進行控制台輸入 例 name input 請輸入名字 此時控制台會顯示 請輸入名字 輸入完畢後按下enter會將使用者輸入的內容賦值給name變數 name input 請輸入名字 print 你好 name 2 print 輸出的多種形式 在列印結尾顯示內容 print...