English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

#include
#include
int main(void)
{
int a, b, c, max = INT_MIN;
printf("%f",max);
printf("請輸入 3 個測試整數:");
scanf("%d%d%d", &a, &b, &c);
if(max < a) max = a;
if(max < b) max = b;
if(max < c) max = c;
printf("已知 a=%d、b=%d、c=%d,其中最大值為:%d\\n", a, b, c, max);
system("PAUSE");
return 0;
}

看不懂耶
不知怎用的

sorry沒點數了只剩8點
知道的掰托講一下囉

2006-11-16 22:05:15 · 2 個解答 · 發問者 yo 1 in 電腦與網際網路 程式設計

看不懂的的方式max = INT_MIN;

2006-11-16 22:16:56 · update #1

為啥這樣就能比較了

2006-11-16 22:17:22 · update #2

2 個解答

C 對 int 型態所用的 bits 數的定義是:CPU 的 bits 數!所以,在 16 位元的 CPU 的電腦裡, int 是 2 bytes;在 32 位元的 CPU 的電腦裡, int 是 4 bytes;在 64 位元的 CPU 的電腦裡, int 是 8 bytes;請問:int的最小值是?難道還要程式師自己設法求出?(當然可以辦到!)INT_MIN 就是記錄 int 的最小值。16位元的 int 就是 -32768。如果 a, b, c 比 max 大,那就把 max 換成 a, b, c所以,最大值就求出啦!但,先決條件是:max 剛開始一定要比 a, b, c 任一個都小!這程式用的方法是:讓 max = INT_MIN其實可以用max = a;if(max < b) max = b;if(max < c) max = c;就好了。

2006-11-16 22:26:30 · answer #1 · answered by ? 7 · 0 0

你注意到這一行了嗎?
#include
這一行所載入的表頭檔為一些關於整數值檔案極限大小的定義,
此表頭檔裡有一行
#define INT_MIN(-INT_MAX-1)
意思就是定義了INT_MIN這個字的範圍為(-INT_MAX-1)
而INT_MAX的範圍則在前一行被定義為 2147483647
#define INT_MAX2147483647
故 你的INT_MAX在這裡的時候的數值是 (-2147483647-1)
就是"-2147483648"啦!
那你輸入任何數跟他比較的話,他一定是最小的,
所以這裡假設你輸入的數值 a=1 , b=2 , c=3 時,
max於下面這一行將因為比a小,而被指定成為a,故此時max已經變成a了,
if(max < a) max = a; max原本為-2147483648,執行完這行會變成a,所以就是1!
max於下面這一行將因為比b小,而被指定成為b,故此時max已經變成b了,
if(max < b) max = b; max原本為1,執行完這行會變成b,所以就是2!
max於下面這一行將因為比c小,而被指定成為c,故此時max已經變成c了,
if(max < c) max = c; max原本為2,執行完這行會變成c,所以就是3!

你可以自己假設a,b,c的數值之後,照我的方式去推幾遍後就能理解了喔!

2006-11-17 04:46:09 · answer #2 · answered by 吃泡麵長大 3 · 0 0

fedest.com, questions and answers