C語言問題

2022-12-19 05:11:09 字數 665 閱讀 1967

1樓:匿名使用者

按照#define sqr(x) x*x

a/=sqr(k+m)/sqr(k+m); 實際上就是:a/=k+m*k+m/k+m*k+m;

你按這個算 a的值就是1。

ps:如果#define sqr(x) x*x改為#define sqr(x) (x*x),a的值就是10了。

2樓:希聲和寡

注意,不要以自己的想法主動地給巨集加括號,

編譯器直接帶入,有括號就加,沒有括號就帶入後按照運算子優先順序運算所以,sqr(k+m)/sqr(k+m)的計算過程如下:

sqr(k+m)/sqr(k+m)

=k+m*k+m/k+m*k+m

=2+1*2+1/2+1*2+1

=2+2+0+2+1

=7a/=sqr(k+m)/sqr(k+m);

也就是:

a/=7

a=a/7=10/7=1

3樓:甄喜歡你

把巨集定義的地方代換一下得

k+m*k+m/k+m*k+m=2+2+0(1/2)+2+1=7

a=a/7=10/7=1

4樓:扈明煦

注意加括號!

#define sqr(x) (x*x)

c語言問題,C語言問題C語言問題

沒有縮排,看來比較累 但是輸入一串字元以後要輸入結束標誌eof表示你的輸入結束了 如果你是unix,就用ctrl d,dos就用ctrl z include define maxline 1000 maximum input line length int getline char line,int...

c語言問題,C語言問題C語言問題

把檔案中所有逗號用空格替換。把if fp fopen goods.dat rb null 改成fp fopen goods.dat r null 把 feof fp 換成 0。把 一行刪除。以上3 4也可以在while前新增一行 解決 把printf s,2s,d,d n name,price,in...

c語言問題,C語言問題

您好,c語言經典100題 題目 有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數 都是多少 1.程式分析 可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去 掉不滿足條件的排列.2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成.利潤 i 低於或等於10...