PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   有人會寫程式嗎? (https://www.pcdvd.com.tw/showthread.php?t=403665)

Kaworucloud 2004-10-29 12:21 AM

原來如此,確實是把結束條件的 0 也拿進去判斷了
----------------------------------------------
更新版(修改後面的輸入皆小於第一次輸入時的判斷)

int num=1, largest = 0, second = 0;
bool isFirst = true;
printf( "請輸入整數,若要結束則輸入 0\n" );
while ( num )
{
  scanf( "%d", &num );
    if ( num == 0 ) break;
    if ( isFirst )
      { largest = num; second = num; isFirst = false; continue; }
    if ( largest == second )
      second = num;
    if ( num > largest )
      { second = largest; largest = num; }
    else if ( num > second )
      second = num;
}
printf( "最大為 %d 次大為 %d ", largest, second );

Kaworucloud 2004-10-29 12:27 AM

引用:
作者flowofsoul
請問樓主你是在討作業嗎?= = 這個很簡單耶......而且看你的發言好像你連基本語法都不會.....


嗯.....對於這個嘛
個人是認為,只要有心想弄懂,向會的人討教也不為過 :agree:
總比什麼都不去想,之後再複製同學的交去,什麼也沒學到要來的好吧 :jolin:
重點是人家的解法要「弄懂」就是了 :ase

jackyepson 2004-10-29 12:34 AM

flowofsoul,為什麼負數的次大值變成負很小很小

Kaworucloud 2004-10-29 12:38 AM

沒差
不過程式被清掉( 說有 BUG ),想找隻蟲也沒辦法了 :cry:

jackyepson 2004-10-29 12:40 AM

有點亂掉了,因為我在發言時不知道你已經又發言!!!

8:5 2004-10-29 12:57 AM

看來大家都喜歡把輸入第一第二個數字也放在迴圈裡,而且也不喜歡直接從迴圈內 break 出來?

代碼:
#include <stdlib.h>
#include <limits.h>
main() {
int max1=INT_MIN, max2=INT_MIN, n;
        printf("enter at least two non-zero numbers then end with a zero...\n");
        while (scanf("%d", &n), n!=0) {
                if (n>max1) {
                        max2=max1;
                        max1=n;
                } else if (n>max2) {
                        max2=n;
                }
        }
        printf("max1=%d, max2=%d\n", max1, max2);
}

jackyepson 2004-10-29 12:58 AM

引用:
作者Kaworucloud
嗯.....對於這個嘛
個人是認為,只要有心想弄懂,向會的人討教也不為過 :agree:
總比什麼都不去想,之後再複製同學的交去,什麼也沒學到要來的好吧 :jolin:
重點是人家的解法要「弄懂」就是了 :ase

我同意你的看法,現在只要我只要問這種作業上的問題,老師總是回答的很簡單,有答好像沒答一樣,所以才想來這兒問問看,一邊做作業一邊學習為何會這樣 :shy:

Kaworucloud 2004-10-29 01:04 AM

出現了....<LIMITS> + INT_MIN :jolin:
因為程式是判斷輸入的數較大的話就代換掉
為了避免輸入值全部小於初始值的麻煩
乾脆初始值給 INT 的 MINIMUM....

jackyepson 2004-10-29 01:09 AM

可是次大值還是變成負很小

Kaworucloud 2004-10-29 01:12 AM

引用:
作者jackyepson
可是次大值還是變成負很小


誰的 :confused:
我的跟 8:5 兄的我試都很正常啊 :shock:
除非你只輸入一個數 :jolin:


所有的時間均為GMT +8。 現在的時間是02:21 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。