內容
拿氣溫來說,攝氏 15 度和攝氏 15.05 度的差距對人來說差異實在不大,有了數學概數的觀念,我們可以透過四捨五入法來得到一個數字的估計值,進而方便統計。
現在請你將一些小數利用程式來四捨五入。
輸入
共計三個測資點,每個測資檔中有多行小數 n(-1<=n<=1),至多小數點以下有 100 位數
1.00000
0.5
0.715
0.1234567890
-0.995
輸出
請輸出四捨五入至小數點以下第二位的結果
1.00
0.50
0.72
0.12
-1.00
解題思路
簡單的字串處理,注意當測資小於 -0.005 時要輸出 0.000 而不是 -0.00。
完整程式碼
AC (2ms, 108KB)
#include <stdio.h>
char buffer[110], * num;
int main() { while (scanf(" %s", buffer) == 1) { num = buffer[0] == '-' ? buffer + 1 : buffer; if (num[3] == '\0') num[3] = '0', num[4] = '\0'; else if (num[4] >= '5') num[3]++; for (int i = 3; ~i; i--) { if (num[i] > '9') { if (num[i - 1] == '.') num[i - 2]++; else num[i - 1]++; num[i] = '0'; } else break; } num[4] = '\0'; puts((num[0] == '0' && num[2] == '0' && num[3] == '0') ? "0.00" : buffer); } return 0; }
|