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...