本題的基本要求非常簡單:給定N個實數,計算它們的平均值。但複雜的是有些輸入資料可能是非法的。一個“合法”的輸入是[-1000,1000]區間内的實數,并且最多精确到小數點後2位。當你計算平均值的時候,不能把那些非法的資料算在内。
輸入格式:
輸入第一行給出正整數N(<=100)。随後一行給出N個實數,數字間以一個空格分隔。
輸出格式:
對每個非法輸入,在一行中輸出“ERROR: X is not a legal number”,其中X是輸入。最後在一行中輸出結果:“The average of K numbers is Y”,其中K是合法輸入的個數,Y是它們的平均值,精确到小數點後2位。如果平均值無法計算,則用“Undefined”替換Y。如果K為1,則輸出“The average of 1 number is Y”。
輸入樣例1:
7
5 -3.2 aaa 9999 2.3.4 7.123 2.35
輸出樣例1:
ERROR: aaa is not a legal number
ERROR: 9999 is not a legal number
ERROR: 2.3.4 is not a legal number
ERROR: 7.123 is not a legal number
The average of 3 numbers is 1.38
輸入樣例2:
2
aaa -9999
輸出樣例2:
ERROR: -9999 is not a legal number
The average of 0 numbers is Undefined
思路:
利用sprintf與sscanf組合判斷是否符合條件。
sscanf() – 從一個字元串中讀進與指定格式相符的資料
sprintf() – 字元串格式化指令,主要功能是把格式化的資料寫入某個字元串中。