gpt4 book ai didi

java - 使用数组显示用户输入的值

转载 作者:行者123 更新时间:2023-12-01 13:42:05 25 4
gpt4 key购买 nike

我有一个作业,我一整天都在做它,我完成了它,并且它有效,但不是按照我的老师想要的方式,我已经绞尽脑汁几个小时但没有任何运气

这是作业问题

“编写一个程序,输入五个,每个数字在 10 到 100 之间(含),当我读取每个数字时,仅当它不是已读取的重复数字时才显示它,提供“最坏情况”,其中所有数字五个数字不同,使用尽可能小的数组来解决这个问题。在用户输入每个新值后,显示输入的完整唯一值集。”

这是我写的代码

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int sid[] = new int[5];

int count = 0;
int x = 0;
int num = 0;

while (x < sid.length)
{
System.out.println("Enter number: ");
num = input.nextInt();

if ((num >= 10) && (num <= 100)) {
boolean digit = false;
x++;

for (int i = 0; i < sid.length; i++)
{ if (sid[i] == num)
digit = true;
}

if (!digit) {

sid[count] = num;

count++;

}

else

System.out.printf("the number was entered before \n");

}

else
System.out.println("number must be between 10 and 100");


for (int i =0; i < x; i++) {
System.out.print(sid[i] +" ");

}

System.out.println();
}

}
}

我的问题是在输出中,输出是这样的

    {
Enter number:
11
11
Enter number:
21
11 21
Enter number:
34
11 21 34
Enter number:
11
the number was entered before
11 21 34 0
Enter number:
44
11 21 34 44 0

}

但是我的老师希望输出也像这样,末尾没有 0,并且不将数组 sid 的值从 sid[5] 更改为 sid[4]

    {
Enter number:
11
11
Enter number:
21
11 21
Enter number:
34
11 21 34
Enter number:
11
the number was entered before
11 21 34
Enter number:
44
11 21 34 44

}

我已经尝试了几个小时了,但没有任何运气。

感谢任何帮助。

谢谢。

干杯。

最佳答案

您只需向输出循环添加一个 if 条件即可。

            for (int i =0;  i < x; i++) {
if(sid[i]!=0)
System.out.print(sid[i] +" ");
}

关于java - 使用数组显示用户输入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20655958/

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