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

發問時間: 電腦與網際網路程式設計 · 10 年前

case switch判斷式解題

1. 輸入6個正整數(數字1-9,數與數之間用空格隔開),請找出重複出現最多次的整數及其重複的次數。[提示] 請使用case switch判斷式題目輸入:6個正整數(ex: 1 3 9 3 8 6)題目輸出:重複出現最多次的整數及其重複的次數(ex: [3,2])

已更新項目:

若數與數之間用空格隔開 沒辦法那就用\n

3 個解答

評分
  • 10 年前
    最佳解答

    除非是用讀一整行的如getline,會把空格也讀進去,其他就把連續空格當成按一次enter

    //以下程式碼沒有編譯過,直接在網頁回答區寫出,有名稱錯誤請自行修正

    //出現雙重最多數字的只會顯示第一個數字

    #include int num;//輸入的數字

    int c[9]={0}; //數字1-9的次數,初始化為0

    int num_max;

    int i;

    for(i=0;i<6;i++)//讀取數字的次數為迴圈次數

    {

    scanf(%d,num);

    switch (num)

    {

    case 1: c[0]++; break;

    case 2: c[1]++; break;

    case 3: c[2]++; break;

    case 4: c[3]++; break;

    case 5: c[4]++; break;

    case 6: c[5]++; break;

    case 7 :c[6]++; break;

    case 8: c[7]++; break;

    case 9: c[8]++; break;

    }

    }

    num_max=1;

    //再來就是比較c[9]陣列大小

    for(i=1;i<10;i++)

    {

    if(c[num_max-1]

    num_max=i+1;

    }

    printf("最多數字:%d 及重複次數為%d ",num_max,c[num_max-1]);

  • 10 年前

    case - switch 這題應不適合用。

    原 po 的疑惑: keyword : strchr、strtok。

    2011-08-03 15:22:22 補充:

    補一下,回答001 程式碼應有個算明顯的錯誤。

  • 阿風
    Lv 5
    10 年前

    是不難...

    但我想知道如何輸入數字 才能空格而不是下一行

還有問題?馬上發問,尋求解答。