關於C語言的簡單計算題,關於C語言的乙個簡單計算題!!

2022-06-06 16:12:12 字數 1741 閱讀 5503

1樓:

在c語言中巨集定義只是簡單的替換s=s(a+b)=10*a+b*a+b=10*10+20*10+20=320

2樓:杜茂彥

s=s(a+b); == s= 10 * a+b * a+b = 10 *10+20*10+20 = 100+200+20 = 320;

應該定義s(r) 為 #define s(r) 10* (r) * (r)

3樓:匿名使用者

#define s(r) 10*r*r

這裡改成

#define s(r) 10*(r)*(r)因為巨集不是函式,他只是簡單的做了乙個替換的工作.比如你寫的s(a+b);

就被替換成 10*a+b*a+b

所以一般寫巨集的時候,都會把變數(就是你這裡面的r)用小括號括起來,這樣就不會有這樣出乎意料的運算了.

4樓:匿名使用者

因為define是簡單的替換

s=s(a+b);就等於s=10*a+b*a+b;

**應該改為:

#define s(r) 10*r*r

main()

5樓:

你用的巨集定義,這個s=s(a+b);程式是這樣執行的:s=10*a+b*a+b;所以結果是320,而不是9000,。用巨集最好加括號,如#define s(r) 10*(r)*(r),這樣結果就是9000了,當然我建議還是少用巨集定義,有的時候會發生意想不到的錯誤。

這裡完全可以用乙個內聯函式代替。

關於 c語言乙個簡單例題!

關於c語言邏輯運算子一道簡單的題目!

6樓:夏碧夢

這是邏輯運算子的短路判斷造成的!

由於邏輯運算子||和&&實現判斷左值的,顯然如果根據左值就能夠判斷整個表示式真假的話,那剩下的就不用判斷了!目前的c編譯就是這樣處理的!

對於邏輯或||,左值為真,整個表示式就為真;

對於邏輯與&&,左值為假,整個表示式就為假!

++x||++y&&++z中先執行邏輯或||左邊的++x後x=1,左值為真,後面的自然就不用處理了!

7樓:匿名使用者

這個是c語言的優化造成的。

按照c語言對邏輯或運算優化計算的規定,當邏輯或的左運算分量滿足時,不再計算邏輯或的右運算分量,而直接得到邏輯或運算的結果。由於邏輯或的右運算分量不曾計算過,所以變數y,z的值也不為變化。

8樓:伊·梵

就是這樣算的

邏輯運算子從左至右還確保其運算元的計算。 但是,它們計算必要的運算元的最小數目確定表示式的結果。 這稱為 「短路計算」。

題目18:用c語言設計乙個簡單的計算器,

用c語言計算簡單的數學題

9樓:匿名使用者

#include

int main()

printf(「%f」,s);

}解釋一du下:

t是分zhi母,每次dao乘以2

k是控制+和

回-的,每次乘以-1可以加減答交替。

關於c語言的乙個很簡單的練習題!

10樓:匿名使用者

scanf("%d,&a"); 寫錯了

scanf("%d",&a);

C語言的乙個計算題,c語言這題怎麼計算?

這個問題是乙個運算子優先順序的問題!題目中的優先順序 最高,依次是 所以上一題首先求解的是 第乙個 求解 z y為真,所以結果是1,用它的結果和x比較,1 2,所以括號內的結果是0 第二個 求解 y z為真,結果為1 第三個 求解 x y 2 4 6 第四個 求解 y z 2 所以得到的結果是!0 ...

關於C語言的簡單問題,乙個關於C語言的簡單問題

p fopen e string.txt w 是以只寫方式開啟e盤下的string.txt檔案,如果檔案不存在則建立乙個新檔案,如果存在,則檔案內的資料會丟失 也就是會被你將要寫入的資料覆蓋 開啟檔案成功則返回的是檔案指標,如果不成功返回0 if null p fopen e string.txt ...

關於C語言的簡單問題,乙個關於C語言的簡單問題

int fun char p,char q for i 0 p 0 i p應小寫,fun函式的比較方法也不對,你這樣只能比較開始字母一樣的 int fun char p char q 兩個引數中間少了乙個逗號 for i 0 p 0 i 這個大寫p應該為小寫p 你的fun函式不是那麼回事啊。我幫你重...