想請教幾個非常基礎的問題,謝謝!
程序代码:#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,請問何解呢?
謝謝各位!









