define MA x,yxy int i 2 i 3 MA i,i 2 5 printfd」,i輸出是什麼,為什麼

2021-04-21 17:07:40 字數 1122 閱讀 7675

1樓:匿名使用者

i=3/ma(i,i+2)+5;

經過巨集替換後抄:

i=3/(i)*(i+2)+5;

由於在此襲之前,i=2,所以

3/(i)*(i+2)+5

就成了3/2*4+5

由於參與運算的都是整

數,所以結果也是整數,即:

3/2的結果就是1,因此,表示式就變成了:

1*4+5

也就是9

2樓:匿名使用者

輸出來 9

沒有為什麼 **這源麼簡單 你問的是為什麼 輸出9 還是什麼我估計你是不明白 #define ma(x,y) (x)*(y) 這個就是個自定義 重新命名的意思

定義以後 ma(1,2) 就相當於 1*2懂了嗎

3樓:匿名使用者

答案為9.

步驟:i=3/ma(i,i+2)+5=3/(i)*(i+2)+5=3/2*4+5=1*4+5=9.

4樓:匿名使用者

9 i = 3/2 * 4 + 5 = 9

#include #define x 5 #define y x+1 #define z y*x/2 main() { int a; a=y; printf("%d %d\n",z

5樓:匿名使用者

巨集定義只執行簡單的替換操作,就像你把x用5代替一定,y就用x+1代替就是6,z用y*x/2代替,這時候要注意了,是x+1*x/2,也就是5+1*5/2,結果z就是7,如果你#define y (x+1),這是帶了括號的,然後再去替換到z裡,又是另一個結果,(x+1)*x/2,把5帶進去算就是15了,巨集定義中帶括號和沒帶括號差別很大的,要特別特別注意,因特他真的是很簡單很簡單的「替換」操作。

6樓:匿名使用者

printf("%d %d\n",z ,語句不全,

z = x + 1*x/2 = 5 + 1*5/2 = 5 +2 = 7;因為#define 定義的巨集只進行單純的替換,

7樓:水de幻想

如果你這是完整的話,那結果應該是7,而不是7.5

i 2i平方 3i立方2019i2019次方 i是虛數單位

i 2i平方 copy bai 3i立方 du zhi 2008i2008次方dao i 2 3i 4 5i 6 7i 2007i 2008 i 3i 5i 7i 2007i 2 4 6 8 2008 2i 2008 4 2 2008 4 1004 1004i 令s baii 2i du2 3i 3...

已知複數z(2m2 3m 2m2 3m 2)i(其中i為虛數單位)(1)當複數z是純虛數時,求實數m的值(2)若

1 由題意du有 2m?3m?2 0 m?3m 2 zhi0,解得 m 1 2或m 2 m 1且m 2 dao5分 即m 1 2時,複數z為純虛內數 7分 2 由題意有 2m 3m?2 容0 m?3m 2 0 解得 12 m 2 1 m 2 12分 所以當m 1,2 時,複數z對應的點在第三象限 1...

a 2x2x3xb,b 2x2x2x3,a和b最大公因數是()最小公倍數是()

a 2x2x3xb,b 2x2x2x3,a和b最大公因數是 24 最小公倍數是 288 大學理工類都有什麼專業 10 理工類專業 數學與應用數學 資訊與計算科學 物理學 應用化學 生物技術 地質學 大氣科學類 理論與應用力學 電子資訊科學與技術 環境科學 採礦工程 石油工程 冶金工程 機械設計製造及...