PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

  回應
 
主題工具
Kaworucloud
Major Member
 
Kaworucloud的大頭照
 

加入日期: Sep 2004
文章: 124
原來如此,確實是把結束條件的 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 );
     
      
__________________
どうしてこうなった(′・ω・`)
舊 2004-10-29, 12:21 AM #21
回應時引用此文章
Kaworucloud離線中  
Kaworucloud
Major Member
 
Kaworucloud的大頭照
 

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


嗯.....對於這個嘛
個人是認為,只要有心想弄懂,向會的人討教也不為過
總比什麼都不去想,之後再複製同學的交去,什麼也沒學到要來的好吧
重點是人家的解法要「弄懂」就是了
 
__________________
どうしてこうなった(′・ω・`)
舊 2004-10-29, 12:27 AM #22
回應時引用此文章
Kaworucloud離線中  
jackyepson
Regular Member
 
jackyepson的大頭照
 

加入日期: Oct 2004
您的住址: 虛擬的世界
文章: 66
flowofsoul,為什麼負數的次大值變成負很小很小

此文章於 2004-10-29 12:38 AM 被 jackyepson 編輯.
舊 2004-10-29, 12:34 AM #23
回應時引用此文章
jackyepson離線中  
Kaworucloud
Major Member
 
Kaworucloud的大頭照
 

加入日期: Sep 2004
文章: 124
沒差
不過程式被清掉( 說有 BUG ),想找隻蟲也沒辦法了
__________________
どうしてこうなった(′・ω・`)

此文章於 2004-10-29 12:45 AM 被 Kaworucloud 編輯.
舊 2004-10-29, 12:38 AM #24
回應時引用此文章
Kaworucloud離線中  
jackyepson
Regular Member
 
jackyepson的大頭照
 

加入日期: Oct 2004
您的住址: 虛擬的世界
文章: 66
有點亂掉了,因為我在發言時不知道你已經又發言!!!
舊 2004-10-29, 12:40 AM #25
回應時引用此文章
jackyepson離線中  
8:5
Major Member
 

加入日期: Dec 2002
您的住址: 謎
文章: 265
看來大家都喜歡把輸入第一第二個數字也放在迴圈裡,而且也不喜歡直接從迴圈內 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);
}

此文章於 2004-10-29 01:18 AM 被 8:5 編輯. 原因: 替n>max2上色
舊 2004-10-29, 12:57 AM #26
回應時引用此文章
8:5離線中  
jackyepson
Regular Member
 
jackyepson的大頭照
 

加入日期: Oct 2004
您的住址: 虛擬的世界
文章: 66
引用:
作者Kaworucloud
嗯.....對於這個嘛
個人是認為,只要有心想弄懂,向會的人討教也不為過
總比什麼都不去想,之後再複製同學的交去,什麼也沒學到要來的好吧
重點是人家的解法要「弄懂」就是了

我同意你的看法,現在只要我只要問這種作業上的問題,老師總是回答的很簡單,有答好像沒答一樣,所以才想來這兒問問看,一邊做作業一邊學習為何會這樣
舊 2004-10-29, 12:58 AM #27
回應時引用此文章
jackyepson離線中  
Kaworucloud
Major Member
 
Kaworucloud的大頭照
 

加入日期: Sep 2004
文章: 124
出現了....<LIMITS> + INT_MIN
因為程式是判斷輸入的數較大的話就代換掉
為了避免輸入值全部小於初始值的麻煩
乾脆初始值給 INT 的 MINIMUM....
__________________
どうしてこうなった(′・ω・`)
舊 2004-10-29, 01:04 AM #28
回應時引用此文章
Kaworucloud離線中  
jackyepson
Regular Member
 
jackyepson的大頭照
 

加入日期: Oct 2004
您的住址: 虛擬的世界
文章: 66
可是次大值還是變成負很小
舊 2004-10-29, 01:09 AM #29
回應時引用此文章
jackyepson離線中  
Kaworucloud
Major Member
 
Kaworucloud的大頭照
 

加入日期: Sep 2004
文章: 124
引用:
作者jackyepson
可是次大值還是變成負很小


誰的
我的跟 8:5 兄的我試都很正常啊
除非你只輸入一個數
__________________
どうしてこうなった(′・ω・`)

此文章於 2004-10-29 01:15 AM 被 Kaworucloud 編輯.
舊 2004-10-29, 01:12 AM #30
回應時引用此文章
Kaworucloud離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是11:05 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2026。