測試輸入資料,控制輸出小數

2021-09-30 00:27:40 字數 991 閱讀 9266

乙個班有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...