2011-12-10 69 views
-2

可能重複:
Array sorting input掃描陣列輸入

實現一個程序來處理5個候選票人才 競賽。

程序應該使用一個字符串數組來保存候選人名稱和一個整數數組,以記錄每個參賽者的投票數。

它應該提示用戶輸入他們希望投票的候選人的號碼(在0-4的範圍內),直到輸入-1,其中 表示投票結束。如果所選的候選 不在要求的範圍內,則應輸出錯誤消息。

在投票結束時,程序應降序排列並將其輸出,輸出的消息顯示 誰在第3,第2和第1名

那麼之前的票數排序爲 ,到目前爲止,我有一些失敗就是這些。我不會有任何排序和交換輸入的問題。但輸入本身對我來說是一種痛苦。

//exam result processing - using selection sort 

import java.util.*; 

public class VoteCount { 

    public static void main(String[] args) { 
     //create empty array 
     int[] votes = new int[5]; 

     //input data 
     input(votes); 
    } 

    public static void input(int[] votes) 
    { 
     Scanner kybd = new Scanner(System.in); 
     System.out.println("Enter vote number of the candidate results: "); 
     int votecount = kybd.nextInt(); 

     while (votecount !=-1) 
     { 
      votes[votecount]++; 
      System.out.println("Candidate" + votes +"Has" +votecount + "votes"); 

     } 
    } 
} 
+4

你問的確切同樣的問題,30分鐘前http://stackoverflow.com/questions/8455419/ array-sorting-input – GETah

+0

那麼你的問題是什麼? – Bart

+0

是的,我做了,沒有回答迄今爲止。問題是在輸入代碼的編碼方面的幫助。 –

回答

0

您應該使用kybd.hasNext()來測試是否有更多投票數。你可以在這樣的終端輸入:)
0,1,2,1,3
和修改,同時(到:
while(kybd.hasNext())

沒有必要的-1結束輸入,你必須輸入所有票數在一行。您可以使用<space>,逗號或<Tab>來分割投票數字。

+0

你看到的問題是,我必須通過輸入-1使程序停止,然後給我數據enteret –

+0

的完整詳細信息,然後嘗試使用@GETAH的答案.. – ijse

0

您必須閱讀,而週期內用戶的輸入,如:

Scanner kybd = new Scanner(System.in); 
System.out.println("Enter vote number of the candidate results: "); 
int votecount = kybd.nextInt(); 

while (votecount !=-1) 
{ 
    votes[votecount]++; 
    System.out.println("Candidate "+names[votecount]+" Has "+votes[votecount]+" votes"); 
    System.out.println("Enter vote number of the candidate results: "); 
    votecount = kybd.nextInt(); 
} 
額外

,「投票」是一個數組,所以在印刷中會給你一些像「0 @ 562fb45」讓我們假設你西港島線創造一些「名」陣列,其將持有的候選人的名字,像這樣的例子:

String names = {"Peter", "Tomas", "Jonny", "Mark", "Jane"};