請撰寫一個程式運用 stdio 函式庫的 scanf 和 printf 函式讀取測試資料並且計算
兩數之和、整數除法的商和餘數、浮點數除法的商, 請練習下面的迴圈控制
scanf(...); // 讀取案例個數至整數變數 n
for (i=0; i<n; i++)
{
...
}
- 下面的測試用範例中, 輸入測試資料的第一列為一個整數 n, 代表接下來有 n 個測試案例
- 每一列是一個案例, 包含兩個整數, 請讀入此兩個整數資料並且完成指定的運算
- 請注意觀察輸出測試資料, 程式需要輸出 n 列, 每一列是一個測試案例的測試結果, (假設 a + b = c, a / b = d, a
% b = e, a / b = f) 列印的格式是每一列四個數字 c, d, e, f 以逗點和一個空格隔開, 其中 c, d, e
三個整數都列印在 5 格的欄位中, 浮點數 f 列印在 10 格的欄位中, 小數點後印 5 位數字
- 請特別注意觀察整數除法 a / b 和餘數 a % b 在 a 或是 b 為負數時的結果
- 因為開始練習迴圈, 提交程式就有限定執行時間, 否則萬一你的迴圈不結束, 就很浪費系統資源了
輸入測試資料:
7↵
73 56↵
28 27↵
185 30↵
1412 345↵
210 -75↵
-3123 -4215↵
-4703 1014↵
輸出測試資料:
129, 1, 17, 1.30357↵
55, 1, 1, 1.03704↵
215, 6, 5, 6.16667↵
1757, 4, 32, 4.09275↵
135, -2, 60, -2.80000↵
-7338, 0, -3123, 0.74093↵
-3689, -4, -647, -4.63807↵
------------------------------------------------------------
Number_of_hands.cpp
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n, i, a, b;
scanf("%d",&n);
for(i = 0 ; i < n ; i++){
scanf("%d%d",&a,&b);
int add=0, div=0, mid=0;
float div2=0.0;
printf("%5d,%6d,%6d,%11.5f\n",add = a+b, div = a/b, mid = a%b, div2 = (float)a/b);
}
return 0;
}
------------------------------------------------------------
該注意的就是, 第一筆資料後的小數點位置,
因為會把前一個數字的 "," 算進去, 所以後面顯示的時候要多加一位才可以.
題目來源
http://140.116.249.152/e-Tutor/mod/programming/submit.php?a=12709
沒有留言:
張貼留言