1樓:匿名使用者
資料型別是錯誤的
printf() 要求 後面的填充 資料域 的 資料型別,必須和資料域指定的型別一致。
%f 要求 的資料型別是 float。(在微軟的編譯器上,其實是double)
而 b*c/d 計算的結果 是 int 型別b*c/d-2.1 的計算結果是 double 型別解決方法是
printf("%d\n", b*c/d);
或者printf("%f\n", (float)(b*c/d));
2樓:
printf的%f要把引數按浮點輸出,所以對應的引數必須是浮點型,
而,b*c/d中變數都是整型,所以結果也是整型,型別與%f不配就出錯。而b*c/d-2.1表示式中有個2.
1,它是預設的浮點型,按c的規則,表示式中的其他變數都要臨時提升到浮點型參與運算,結果也是浮點型,所以就對了。
3樓:匿名使用者
%f 是輸出浮點數的,而你用整數計算的結果也是整數,所以出錯,你得強制為浮點數,你加了個2.1之後,結果是浮點數,就對了,
4樓:粉絲丶
少了一個右括號。你數一下就知道了。
打字不易,如滿意,望採納。
c語言中表示式7=4+3為什麼是錯的?
5樓:
=在c語言中是賦值,你這個表示式意思就是把4+3賦值給7,但是7已經是個常量了,就會出現問題。不知道你是想實現什麼,如果是要比較,如1樓說的用雙等於。如果要賦值的話,7要用一個變數代替,如a=4+3,然後再輸出printf("%d,a"),如果只是想輸出這個表示式,就直接printf("7=4+3")
6樓:
左值不能為常量,=是賦值操作符,要想比較操作是7==4+3
7樓:星辰戀
=是賦值,賦值語句的左值應該是變數,7是常量,不能把數值賦值給常量的!
關於c語言條件表示式的問題 b選項為什麼是錯的?
8樓:
while語句 while :它用來實現bai"當型"迴圈結構。du其一般形式如下:zhi while(表示式)語
dao句 當表示式為非0值時執專行while語句中的內嵌語屬句。其特點是:先判斷表示式,後執行語句。
do...while語句: do 語句 while(表示式)第一次執行一個語句塊,然後重複迴圈的執行該語句塊, 直到條件表示式等於 false
C語言表示式105的值是C語言中表示式105的值是?
是1。根據c語言運算規則,檢查左運算元的值是否小於右運算元的值,如果是則條件為真。1 0 5是先執行1 0 false 結果為0,再執行0 5 true 因此結果為1。如下 表示式的值為1 根據運算子表,是從左往右結合的。先看1 0是假,返回0。原式就變成 0 5,是真,返回1 所以結果就是 1。擴...
C語言中表示式135值,c語言程式是求表示式的值s
有一個優先bai 級的問題 du,注意單雙目 運算子的優先順序zhi,雙目運算子dao除賦值回運算子都為自答左向右結合.運算子.與 相比 大於 與 相比 大於 運算子的運算是自左向右.1 3 5,因為 1 3為真,值為1 1 5為假,值為0 故表示式 1 3 5值為0 1 3為真,值為1 1 5為假...
c語言中while()表示式的疑問
你可以避開0啊,用其他數字代替。或者while x 0 0 100是真。非0即真。表示式為真也是真,如x 4,y 6,x y則是假。這個很簡單,例如定義一個變數int a 然後判斷當a為0時才進入迴圈如下 while a 0 這樣當a為0時就執行迴圈了,因為當a為0時,while 中表示式的邏輯運算...