gpt4 book ai didi

Java - (打印不同的数字)

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:10:04 26 4
gpt4 key购买 nike

我正在尝试解决这个问题:

“编写一个程序,读取十个数字并显示不同数字的数量,不同数字之间恰好用一个空格分隔。”

我的代码目前没有保存所有不同的数字,有时会重复显示 0。如果有人能看出我的逻辑哪里出了问题,任何提示都会有所帮助。谢谢!

public class PracticeProject
{
public static void main(String args[])
{
int[] number = new int[10];
int[] counter = new int[10];
int numcounter = 0;

numGen(number);
numcounter = distNum(number, counter, numcounter);
dispDist(counter, numcounter);
}

public static void numGen(int[] number)
{
Random rand = new Random();

for (int i = 0; i < number.length; i++)
{
number[i] = rand.nextInt(10);
System.out.print(number[i] + " ");
}

System.out.println();
}

public static int distNum(int[] number, int[] counter, int numcounter)
{
for (int i = 0; i < number.length; i++)
{
for (int j = 0; j <= i; j++)
{
if (counter[j] == number[i])
{
break;
}

if (j == i)
{
counter[j] = number[i];
numcounter++;
}
}
}
return numcounter;
}

public static void dispDist(int[] counter, int numcounter)
{
for (int i = 0; i < numcounter; i++)
{
System.out.print(counter[i] + " ");
}
}

最佳答案

问题在于您的 distNum() 方法中的逻辑,它没有正确地从输出数组中删除所有重复项。尝试改用此版本:

public static int distNum(int[] number, int[] counter, int numcounter) {
for (int i = 0; i < number.length; i++) {
boolean isUnique = true;
for (int j = 0; j < numcounter; j++) {
if (counter[j] == number[i]) {
isUnique = false;
break;
}
}
if (isUnique) {
counter[numcounter] = number[i];
numcounter++;
}
}
return numcounter;
}

我遍历随机数数组,并针对每个随机数扫描 counter 以查看是否已遇到该值。如果它是重复的,则不会将其添加到唯一列表中。

此方法已使用 IntelliJ 与您的原始代码的其余部分一起进行了测试,它似乎可以正常工作。

关于Java - (打印不同的数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32132464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com