Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

PETER 發問時間: 電腦與網際網路軟體 · 6 年前

c++ 找最小的三個值

如果用while迴圈做輸入和判斷,那麼一開始怎麼假設最小值,謝謝

這是我的程式碼

unsigned int counter;

int number,min1,min2,min3;

min1=0;

min2=0;

min3=0;

counter=1;

while (counter<=10)

{

printf("請輸入第%d個數字(不可重複):",counter);

scanf("%d",&number);

if(number<min1)

{

min3=min2;

min2=min1;

min1=number;

}

else if(number<min2)

{

min3=min2;

min2=number;

}

else if(number<min3)

{

min3=number;

}

counter += 1;

}

printf("最小的數字:%d\n",min1);

printf("第二小的數字:%d\n",min2);

printf("第三小的數字:%d\n",min3);

system("pause");

1 個解答

評分
  • 6 年前
    最佳解答

    不知道你有沒有學過array了?如果沒有,問問google一定一堆資料讓你讀。

    關於你的問題,請將程式碼新增一些程式如下

    int main ()

    {

    //新增code 其餘幾乎不用改

    int numbers[10];

    for (int i =0;i<10;i++)

    numbers[i]=-1;//假設你最小的輸入大於等於0

    ......

    while()//新增在while裡面

    {

    ...

    //scanf()的下一行

    for (int j =0;j<10;j++)

    if (number==numbers[j])

    {

    printf ("input the same number,please retry.");

    counter--;

    }

    .....

    ///最後也請記得,number<min1 ,number<min2這幾個判斷改成number<=min1..etc

    }//end of while

    .....

    }//end of program

    希望以上的code能回答道你的問題

    參考資料: me
還有問題?馬上發問,尋求解答。