當前位置:編程學習大全網 - 編程軟體 - C語言編程問題.

C語言編程問題.

分類: 電腦/網絡 >> 程序設計 >> 其他編程語言

問題描述:

以下兩個程序結果比較.

(壹)

#include"stdio.h"

#define MAX(x,y) (x)>(y)?(x):(y)

main()

{

int a=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

printf("%d\n",t);

}

(二)

#include"stdio.h"

#define MIN(x,y) (x)<(Y)?(x):(y)

main()

{

int i=10,j=15,k;

k=10*MIN(i,j);

printf("%d\n",k);

}

第壹個答案給我的分析是:

7>6?7:6*10,即t=7.

第二個答案給我的分析是:

10*i<j?i:j,即100<15?10:15,所以k=15

第壹個程序中10為什麽要乘在後面,而第二個要乘在前面呢?

解析:

妳的分析是正確的,這是壹個關於宏定義的問題,妳可以這樣認為:#define MIN(x,y) (x)<(Y)?(x):(y)這句程序的意思就"在下面的程序中凡是遇到#define MIN(x,y)的地方,都用 (x)<(Y)?(x):(y)來代替就行了,然後按運算符的優先級來運算就行了。"。k=10*MIN(i,j) 可以這樣認為:k=10*(x)<(Y)?(x):(y)即k=10*10<15?10:15,顯然是15。

  • 上一篇:寶馬X2儀表盤時間怎麽調
  • 下一篇:切大理石槽、安銅條是怎麽操作的啊,有沒有詳細點的解說
  • copyright 2024編程學習大全網