1樓:煙火夜空
由巨集定義#define 的作用是 純粹替代,所以lz的句子等效於:
t=(a+b)>(c+d)?(a+b):(c+d)*10;
由於 * 的等級高於 條件運算?:,所以結果就為:
7>6?7:60;結果自然就是 7 了
2樓:匿名使用者
#include
#define max(x,y) (x)>(y)?(x):(y)main()
如果是這樣的話,就是70,但是你的程式是t=max(a+b,c+d)*10;他返回的只是t=ma(a+b,c+d)
3樓:匿名使用者
恩,定義的巨集你可以還原一下
max(a+b,c+d)*10;
(a+b)>(c+d)?(a+b):(c+d)*10#define max(x,y) ((x)>(y)?(x):(y))最外面加個括號試試
4樓:匿名使用者
t=max(a+b,c+d)*10;
相當於(a+b)>(c+d)?(a+b):((c+d)*10)
是在(c+d)上*10,並不是在整個的基礎上*10.
5樓:愛你
是70啊,難道你編譯連線出來的結果是7?
求解一道c語言題
只為醍醐灌頂說的是對,你給的答案是錯的,正確應該是8,8,10。這裡是考的指標的移動。難點是 p2 p1 5 這裡的操作是,取出p1所指的值10減去5,p1向後移動1 即現在指向a 1 得數5賦值給p2所指的地址 即a 2 5 p2向前移動1 即p2指向a 1 輸出時 p2 p1 5 0040104...
C語言積極求解,一道C語言程式設計題求解
1.若以下選項中的變數已正確定義,則正確的賦值語句是 a x1 26.8 3 b 1 2 x2 c x3 0x12 d x4 1 2 3 2.下面給出的識別符號中,能作為變數名的是 d a for b 123 c int d a b 中間一橫線在下面 3.c語言中,運算物件必須是整形數的運算是 c ...
兩道C語言程式題求解,一道C語言程式題求解
時辰八點半 2 不採用函式就原始暴力地從頭開始逐個遍歷字串。對原始陣列個數從0索引到最後一個字元使用迴圈 當字元在 a z 或者在 a z 中時將該字元存到另一個定義了空間大小的字元陣列中並使該字元陣列索引 1,直到最後給該新得到的陣列新增結束符 0 並輸出即可 3 一樣從頭開始遍歷陣列,噹噹前字元...