Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要数组java帮助吗_Java - Fatal编程技术网

需要数组java帮助吗

需要数组java帮助吗,java,Java,我有一个程序,它接受用户输入并显示每个整数的输入次数。我几乎完全掌握了它,但需要另一个循环来忽略显示的0。换言之,任何带有0的数字都无法读取,也因为某些原因,我在程序中从同一个数字获得两个输出。例如,如果我输入3,3,我将获得3出现1次和3出现2次作为输出。两次一次正确,第一次不正确 public class Six_Three { public static void main(String[] args) { Scanner input = new Scanner (Syste

我有一个程序,它接受用户输入并显示每个整数的输入次数。我几乎完全掌握了它,但需要另一个循环来忽略显示的0。换言之,任何带有0的数字都无法读取,也因为某些原因,我在程序中从同一个数字获得两个输出。例如,如果我输入
3,3
,我将获得
3出现1次
3出现2次
作为输出。两次一次正确,第一次不正确

public class Six_Three {


public static void main(String[] args) {

    Scanner input = new Scanner (System.in);
    System.out.print("enter integers between 1 and 100: ");
    int[] num = new int[100];
    int data = input.nextInt();

    while ((data = input.nextInt()) != 0) {
        num[data]++;
    }

    for (int i = 1; i < 100; ++i) { 
        if (num[i] > 0) 
            System.out.println(i + " occurs " + num[i] + " times ");
    }
}
公共第六类{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入介于1和100之间的整数:”);
int[]num=新的int[100];
int data=input.nextInt();
而((data=input.nextInt())!=0){
num[数据]+;
}
对于(inti=1;i<100;++i){
如果(num[i]>0)
System.out.println(i+“发生”+num[i]+“次数”);
}
}

每次读取整数时,您都在打印输出。您的程序运行正常

为了得到您想要的,您需要在生成任何输出之前扫描所有输入

请尝试以下方法:

        while (data != 0){
            data = input.nextInt();
            num[data]++;
        }

        for (int i = 1; i < 100; ++i) { // your version is 0...99, else array index out of bounds
            if (num[i] > 0) 
                System.out.println(i + " occurs " + num[i] + " times ");
        }
while(数据!=0){
data=input.nextInt();
num[数据]+;
}
对于(inti=1;i<100;++i){//您的版本是0…99,否则数组索引超出范围
如果(num[i]>0)
System.out.println(i+“发生”+num[i]+“次数”);
}

每次读取整数时,您都在打印输出。您的程序运行正常

为了得到您想要的,您需要在生成任何输出之前扫描所有输入

请尝试以下方法:

        while (data != 0){
            data = input.nextInt();
            num[data]++;
        }

        for (int i = 1; i < 100; ++i) { // your version is 0...99, else array index out of bounds
            if (num[i] > 0) 
                System.out.println(i + " occurs " + num[i] + " times ");
        }
while(数据!=0){
data=input.nextInt();
num[数据]+;
}
对于(inti=1;i<100;++i){//您的版本是0…99,否则数组索引超出范围
如果(num[i]>0)
System.out.println(i+“发生”+num[i]+“次数”);
}

您需要两个独立的循环:第一个用于收集信息,第二个用于打印结果:

int data = 0;

while ((data = input.nextInt()) != 0)
{
    num[data]++;
}

for (int i = 0; i < 100; ++i)
{
    if (num[i] != 0) { /* print num[i] */ }
}
int data=0;
而((data=input.nextInt())!=0)
{
num[数据]+;
}
对于(int i=0;i<100;++i)
{
如果(num[i]!=0){/*打印num[i]*/}
}

您需要两个独立的循环:第一个用于收集信息,第二个用于打印结果:

int data = 0;

while ((data = input.nextInt()) != 0)
{
    num[data]++;
}

for (int i = 0; i < 100; ++i)
{
    if (num[i] != 0) { /* print num[i] */ }
}
int data=0;
而((data=input.nextInt())!=0)
{
num[数据]+;
}
对于(int i=0;i<100;++i)
{
如果(num[i]!=0){/*打印num[i]*/}
}

在while循环之后,只需在
num
数组上循环即可打印计数

for (int index = 0; index < num.length; index++) {

    if (num[index] != 0)
        System.out.println(data + " occurs " + num[data] + " time(s).");
}
for(int index=0;index
在while循环之后,只需在
num
数组上循环即可打印计数

for (int index = 0; index < num.length; index++) {

    if (num[index] != 0)
        System.out.println(data + " occurs " + num[data] + " time(s).");
}
for(int index=0;index
写入最后一个数字的方式必须是0才能使扫描停止。最好检查是否有另一个整数可用,并将其用作扫描循环的条件。这样,您的程序可以接受任何整数

while (input.hasNextInt()){
    num[input.nextInt()]++;
}

写入最后一个数字的方式必须是0才能使扫描停止。最好检查是否有其他整数可用,并将其用作扫描循环的条件。这样,您的程序可以接受任何整数

while (input.hasNextInt()){
    num[input.nextInt()]++;
}
很简单

    int data = 0;

    int[] num = new int[100];

    int i = 0;
    while (i < num.length) {
        if ((data = input.nextInt()) == 0)
            break;

        num[i] = data;
        i++;
    }

    for (i = 0; i < 100; ++i) {
        int times = 0;
        if (num[i] != 0) {
            for (int j = 0; j < 100; j++) {
                if (num[j] == 0) {
                    break;
                } else if (num[i] == num[j]) {
                    times++;
                }
            }
            System.out.println(num[i] + " occurs " + times + " times ");
        } else {
            break;
        }
    }
int data=0;
int[]num=新的int[100];
int i=0;
while(i
太简单了

    int data = 0;

    int[] num = new int[100];

    int i = 0;
    while (i < num.length) {
        if ((data = input.nextInt()) == 0)
            break;

        num[i] = data;
        i++;
    }

    for (i = 0; i < 100; ++i) {
        int times = 0;
        if (num[i] != 0) {
            for (int j = 0; j < 100; j++) {
                if (num[j] == 0) {
                    break;
                } else if (num[i] == num[j]) {
                    times++;
                }
            }
            System.out.println(num[i] + " occurs " + times + " times ");
        } else {
            break;
        }
    }
int data=0;
int[]num=新的int[100];
int i=0;
while(i
如果这是家庭作业,请添加
家庭作业
标记也显示您的预期输出,即除了当前正在发生的事情之外,更容易理解。如果这是家庭作业,请添加
家庭作业
标记也显示您的预期输出,即除了当前正在发生的事情之外,更容易理解理解。抱歉,如果我不清楚,我道歉并感谢您迄今为止的帮助,首先是的,这是家庭作业,但我很想学习,因为我想编程一天,第二天@Kerreck SB当我尝试您的解决方案时,我从这一行得到一个布尔必需且int-found错误,而(data=input.nextInt())显然,它引用的是int变量的数据,但我如何修复它呢?谢谢大家的输入。@杰森:对不起,我的C++习惯忘记了java中需要一个显式的BoL。我更新了答案以适应这个问题。(C++中,一个非零int是自动的“true”)。好的,我得到的不是一个问题,而是期望的结果,我没有读取用户输入的第一个数字,我知道s