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

java 投票問題

假設有1,2, ..... n 等n 個人參加投票,他們只能圈選一個人,但是卻可以選任何一人 甚至可以選不在這n個人中的都行。好比說,五個人投票,分別投給1、8、1、100、1 在這 1、3、5 都投給1 ,2投給8 ,4投給100。寫一個程式接受這些投票結果,看看有沒有人的得票過半數

麻煩告訴我程式碼如何做

已更新項目:

可以用簡單例子,說明解法概念解題邏輯 以及JAVA投票問題的歷史背景

拜託幫幫我

1 個解答

評分
  • 9 年前
    最佳解答

    import java.util.*;

    public class Vote {

    public static void main(String args[]) {

    int a[]={1,2,100,7,5}; //假設參選投票者號碼共五位

    int i ;

    int b[]=new int[5];

    int count=0, sum=0 ,sum2=0,sum3=0,sum4=0;

    Scanner sc =new Scanner(System.in);

    System.out.println("請開始輸入投票號碼");

    for(i=0 ;i<b.length;i++){

    b[i] = sc.nextInt();

    System.out.print("第" + (i+1) +"位投票號碼為 = " + b[i] +"號" +"\n");

    switch(b[i]){

    case 1 : count++; break;

    case 2 : sum++; break;

    case 100: sum2++; break;

    case 7 : sum3++; break;

    case 5 : sum4++; break;

    }if(count>=3){

    System.out.println("得票數過半為 :" + b[i] +"號");break;

    } else if(sum>=3){

    System.out.println("得票數過半為 :" + b[i] +"號");break;

    } else if(sum2>=3){

    System.out.println("得票數過半為 :" + b[i] +"號");break;

    } else if(sum3>=3){

    System.out.println("得票數過半為 :" + b[i] +"號");break;

    } else if(sum4>=3){

    System.out.println("得票數過半為 :" + b[i] +"號");break;

    }//只要超過半數程式即停止顯示哪一號得票過半

    }

    }

    }

    2012-01-15 16:59:38 補充:

    先假設参選者人數陣列~~以選號代表當然就使用int 數值陣列

    再使用switch的控制 用以比對輸入的數值是否是陣列中數值~~而每一個票號用一個變數作遞加~~因假設参選號有五個所以設定過半就必須大於等於 3 所以輸入者輸入票號由switch的控制判斷中變數遞加到超過三自然就得出結果

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