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 如果為...