【问题标题】:scan the array input [duplicate]扫描数组输入[重复]
【发布时间】:2011-12-10 10:15:19
【问题描述】:

可能重复:
Array sorting input

实施一个程序来处理一个人才中 5 位候选人的投票 比赛。

程序应该使用一个字符串数组来保存 5 候选人和一个整数数组来记录每个人的票数 参赛选手。

它应该提示用户输入他们的候选人号码 希望投票(在 0 - 4 范围内),直到输入 -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");

        }
    }
}

【问题讨论】:

  • 你在 30 分钟前问了完全相同的问题stackoverflow.com/questions/8455419/array-sorting-input
  • 是的,我做到了,到目前为止还没有任何答案。问题是请求帮助对代码的输入部分进行编码。
  • @JohnathanSmith 没有得到答案不是再次发布问题的理由。你不应该那样做。澄清你原来的问题。地址 cmets。但不要简单地再次发布。
  • @JohnathanSmith 你试过我在你之前的问题上发布的答案吗?它解决了您在控制台输入 -1 时退出的问题。

标签: java arrays sorting


【解决方案1】:

您必须在 while 循环中读取用户的输入,如下所示:

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();
}

另外,“votes”是一个数组,所以打印出来会给你类似“0@562fb45”的东西,所以假设你要创建一些“names”数组,它会保存候选人的名字,例如这样:

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

【讨论】:

    【解决方案2】:

    您应该使用kybd.hasNext() 来测试是否还有投票数。你可以像这样在终端输入:
    0,1,2,1,3
    并将while()修改为:
    while(kybd.hasNext())

    输入结束时无需-1,您必须在一行中输入所有投票数。您可以使用<space>、逗号或<Tab>来拆分投票数。

    【讨论】:

    • 你看到的问题是我必须通过输入 -1 让程序停止,然后向我提供数据输入的完整详细信息
    • 好的,那就试试@GETah 的回答吧..
    猜你喜欢
    • 2018-05-30
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2021-11-19
    相关资源
    最近更新 更多