想請教幾個非常基礎的問題,謝謝!
程序代码:
#include <stdio.h> #include <stdlib.h> int main () { int i=2, j=3; double k; k = 2/3; printf("2/3 = %f\n", k); k = 2/3.; printf("2/3. = %f\n", k); system("PAUSE"); return 0; }
問題一:
第一條算式,由於算式是以 int 來計算,結果是 0,以 %f 的格式輸出,所以是 0.000000
第二條算式,多了一 .,結果精準度得以延伸至小數點後
請問這一 .,是否代表算式會以 float 的格式計算呢?
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
程序代码:
#include <stdio.h> #include <stdlib.h> int main () { float F, C; printf("請輸入攝氏溫度:"); scanf("%f", &C); F = 9/5 * C + 32; printf("你所輸入的攝氏溫度,轉為華氏溫度為:%.2f\n", F); system("PAUSE"); return 0; }
問題二:
以我理解,運算子在同一優先權的情況下,是由左至右計算,但「F = 9/5 * C + 32」在程式中並不是這樣計算~
例如:如我輸入 37,程式計算結果是 69;如我輸入 38,程式計算結果是 70,這顯示程式只是將「C + 32」並輸出~
如我將算式改成「F = (9/5 * C) + 32」,結果一樣~
只有將算式改成「F = C * 9/5 + 32」 ,才能計算出正確答案~
請問,是我理解有誤,還是程式有誤呢?
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
程序代码:
#include <stdio.h> #include <stdlib.h> int main () { int x=10, y=20, z=30; x=y%z; printf("%d\n", x); system("PAUSE"); return 0; }
問題三:
請問,為何計算結果,x = 20 呢?
在求餘數的運算中,如 y 比 z 細,那求出的值就等於 y 的值嗎?
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
程序代码:
#include <stdio.h> #include <stdlib.h> int main () { int x=13, y=5; printf("x/y = %f\n", x/y); system("PAUSE"); return 0; }
問題四:
13/5=2.6,若以 int 計算,該是 2 吧;若以 float 計算,該是 2.600000 吧~
可以計算結果是 0.000000,請問何解呢?
謝謝各位!