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

标签 java eclipse

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

这是作业问题

“编写一个程序,输入五个,每个数字在 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/

相关文章:

java - 我可以使用 FileReader 读取包含图像和视频(例如 epub 文件)和文本的文件吗?在性能方面是否建议这样做?

java - Android 创建文件夹时在 DDMS 中看不到文件夹

Java不安全的内存分配限制

java - AWS Elastic Beanstalk 上 HTTP Post 对象的 UTF-8 编码问题

在 Jenkins 中运行 mvn 测试时,maven-surefire-plugin 的 Java 版本问题

java - Ubuntu 终端中的工作代码,在 Windows Eclipse 中不起作用

java - Jenkins : [ERROR] actual and formal argument lists differ in length

java - 自动重新部署,不带 "mvn:redeploy"

java - 使用 Tycho 项目构建 eclipse 功能时偶尔会出错

java - 如何更改循环内的 JTextField 值