瀏覽單個文章
Kaworucloud
Major Member
 
Kaworucloud的大頭照
 

加入日期: Sep 2004
文章: 124
引用:
作者jackyepson
經過我融合各位寶貴的意見後,我最後的程式碼是這樣的
#include<stdio.h>
void main()
{
int a,b,c;
printf("請輸入整數,如要跳出請輸入0\n");
while(a!=0)
{
printf("輸入整數:");
scanf("%d",&a);
if (a==0) break;
if (a>b) {
c=b;
b=a;
}if (a>b) {
c=a;
}
}
printf("輸入中最大者和次大者依序是%d和%d\n",b,c);
}
只差負數的次大有問題,那....因為我明天一大早還要上課我怕會爬不起來我就先下線了!!!
希望各位高手能夠把最後的問題解決並告知是為什麼,如果真沒辦法也沒關係!!!


if (a>b 筆誤) {
c=a;
第一, b 跟 c 沒有給定初始值,所以一開始的 b 跟 c 值是多少,unknown
如果運氣不好, b 的值是 65535
那你的測試值大概都不會通過吧

如果初始值是零,那輸入 -1 -2 -3 -4 ,也都不會對,因為根沒有沒進到任何一個 if 述句,我的寫法就是針對這個狀況
如果初始值設成整數的最小值,也不會有上面的問題,就是 8:5 兄的做法
__________________
どうしてこうなった(′・ω・`)
舊 2004-10-29, 01:54 AM #39
回應時引用此文章
Kaworucloud離線中