回覆列表
-
1 # 使用者9592155563258
-
2 # 讓跑步更有力量
#include <stdio.h>
#include "math.h"
int main()
{
int a, b, x, y;
float d;
printf("輸入兩個整數:\n");
scanf("%d,%d", &a, &b);
x = a / b;
y = a % b;
d = (float)a / b;
printf("商為:%d\n", x);
printf("餘數為:%d\n", y);
printf("小數為:%.5f\n", d);
return 0;
}
-
3 # 使用者6819394820496
:在C語言中,浮點數是不能進行求餘操作的。 因為C語言規定,求餘運算子( % )的左右運算元必須為int型別。 浮點型別的數可以表示小數,所以浮點數相除後能用小數表示,不存在餘數的問題,所以也就不能進行求餘運算。
優先順序:括號優先順序最高,結合方式從左往右% * / 是同一優先順序,但要高於+ - ,結合方式從左往右所以說取餘與四則運算是同級別是不對的現在分析你的算式:先不論你的x,y取值 輸出結果為0首先執行() x+y的值被強制轉換為整型其次從左往右執行 a=10 a%3=1 (int)(x+y)%2要麼為0 要麼為1如果為0 那麼0/4=0如果為1 1/4等於幾呢 1 4都為整數那結果肯定是0如果說 float m;m = 1 / 4; 那它的結果還是0 不信你可以用編譯器除錯那怎麼得到0.25呢 把上一句改為 m=1/4.0 結果就為0.25了希望對你有幫助