c語言問題(四則運算)運算出錯,c語言 分數的四則運算為什麼顯示浮點數運算錯誤?

時間 2021-09-14 20:41:42

1樓:匿名使用者

#include

main()

printf("the result is:%d\n",c);}

2樓:匿名使用者

+,-,*,/不屬於char,所以用scanf("%c",&d);是不能輸入+,-,*,/的,char字元型

switch後面的表示式只能是字元型,整形,或列舉型

3樓:匿名使用者

問題在於這句scanf("%c",&d);

因為上乙個函式printf("select '+','-','*','/' ");會讓你輸入符號後用回車結束,然後scanf("%c",&d); 會將你輸入的回車賦給變數d。

解決變法有兩種,第一是在 printf("select '+','-','*','/' ");後加乙個fflush(stdio)函式;用於清除鍵盤輸入快取,第二種比較簡單,將scanf("%c",&d); 改為scanf(" %c",&d); ,在%c前面加乙個空格,這樣回車的就不會被變數d接收

4樓:匿名使用者

輸入兩個數字之後,回車被認為是char存到了scanf("%c",&d)中,於是程式便終止了,只要用一次ch=getchar()把回車符接收掉,然後再了scanf("%c",&d)就好了

#include

main()

printf("the result is:%d\n",c);

} 你再試試

5樓:杜茂彥

估計是輸入搞錯了吧?

你在switch前加上 printf( "input is %d%c%d \n",a,%d,%b); 看看輸入是否正確

c語言 分數的四則運算為什麼顯示浮點數運算錯誤?

6樓:匿名使用者

優先copy

級:括號優先順序最高,結合方式從左往右

% * / 是同一優先順序,但要高於+ - ,結合方式從左往右所以說取餘與四則運算是同級別是不對的

現在分析你的算式:先不論你的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了

希望對你有幫助

c語言問題,乙個四則運算

7樓:匿名使用者

rand()屬於stdlib.h,補上就可以了。

還有個小問題,你的除法有點小bug。比如7/2,四則運算應該是3.5,你的答案肯定是3 。其他沒什麼問題。

8樓:匿名使用者

標頭檔案加上

#include "stdlib.h"

rand()函式包括在stdlib.h中

9樓:

標頭檔案加上

#include "stdlib.h"

四則運算題目,四則運算題目

1.3 7 49 9 4 3 2.8 9 15 36 1 27 3.12 5 6 2 9 3 4.8 5 4 1 4 5.6 3 8 3 8 6 6.4 7 5 9 3 7 5 9 7.5 2 3 2 4 5 8.7 8 1 8 1 9 9.9 5 6 5 6 10.3 4 8 9 1 3 11.7...

用c 語言編寫四則運算計算器,C語言編寫簡單計算器程式 四則運算即可記錄算式輸出算式檢視算式及結果

include include include include using namespace std enum types class parser parser constructor parser parser parser entry point.double parser eval exp...

c語言取餘運算與四則運算的優先順序是怎麼的?

優先順序 括號優先順序最高,結合方式從左往右。是同一優先順序,但要高於 結合方式從左往右所以說取餘與四則運算是同級別是不對的。現在分析你的算式 先不論你的x,y取值 輸出結果為0首先執行 x y的值被強制轉換為整型。其次從左往右執行 a 10 a 3 1 int x y 2要麼為0 要麼為1 如果為...