【问题标题】:Java Arrays - Where too put Strings? Why doesn't it work?Java 数组 - 将字符串放在哪里?为什么它不起作用?
【发布时间】:2015-11-22 18:29:12
【问题描述】:

我的程序应该是这样的:

你想要多少个 0 - 999 之间的随机数? 12(用户 输入)

以下是随机数:145 538 56 241 954 194 681 42 876 323 2 87

这 7 个数字是偶数:538 56 954 194 42 876 2

这 5 个数字是奇数:145 241 681 323 87

我似乎无法将Strings("These 7 numbers are even""These 5 numbers are odd" 放在代码中的正确位置。以及如何打印偶数和奇数的确切数字(75String 中显示的数字?代码似乎对我不起作用。你看到问题了吗?好吧,我希望你能帮我解决这个问题,已经连续 12 小时这样做了现在。

这是我的代码:

import java.util.Scanner;

public class SlumpadeTal {

    public static void main(String[] args) {

        int evenCounter = 0;
        int oddCounter = 0; 

        Scanner input = new Scanner(System.in);
        System.out.println("How many random numbers between 0 - 999 do you want?");
        int antal = input.nextInt();

        System.out.println("Here are the random numbers:");

        int[] arrayen = new int[antal];
        for (int i = 0; i < arrayen.length; i++) {
            arrayen[i] = (int) (Math.random() * 999 + 1);

            System.out.print(arrayen[i] + " ");
            if ((arrayen[i] % 2) == 0) {
                evenCounter++;
            }
            else {
                oddCounter++;
            }
        }
        int[] evenArray = new int [evenCounter];
        int[] oddArray = new int[oddCounter];
        evenCounter = 0;
        oddCounter = 0;
        for (int i = 0; i < arrayen.length; i++){
            if ((arrayen[i] % 2) == 0) {
                evenArray[evenCounter] = arrayen[i];
                evenCounter++;
            }
            else {
                oddArray[oddCounter] = arrayen[i];
                oddCounter++;
            }       
        }
    }
}

注意我不能使用任何类,例如ArrayListVector 等等。

【问题讨论】:

  • for 循环之后打印出偶数/奇数列表,接近方法的最后。
  • 您将希望学习并使用基本的调试技术,最好使用调试器,例如与大多数 IDE(包括 Eclipse 和 NetBeans)捆绑在一起的调试器之一。如果你不喜欢使用它们,那么至少使用“穷人的调试器”:一堆 println 语句慷慨地散布在你的代码中,看看它在做什么,它的变量的状态是什么,当它运行时。然后,一旦您的代码运行良好,您就可以删除 System.out.println(...) 调试语句。
  • 感谢您的提示! @Hovercraft 满满的鳗鱼

标签: java arrays random numbers


【解决方案1】:

只为您的输出:

System.out.print("These "+evenCounter+" numbers are even: ");
for (int i = 0; i < evenCounter; i++){
    System.out.print(evenArray[i]+" ");
}
System.out.println();
System.out.print("These "+oddCounter+" numbers are odd: ");
for (int i = 0; i < oddCounter; i++){
    System.out.print(oddArray[i]+" ");
}
System.out.println();

可行,还有其他解决方案。例如:

String evStr=new String();
String odStr=new String();

int curNum=0;
for (int i = 0; i < antal; i++) {
    curNum = (int) (Math.random() * 999 + 1);

    System.out.print(curNum + " ");
    if ((curNum % 2) == 0) {
        evStr+=" "+curNum;
        evenCounter++;
    }
    else {
        odStr+=" "+curNum;
        oddCounter++;
    }
}
System.out.println();
System.out.println("These "+evenCounter+" numbers are even: "+evStr);
System.out.println("These "+oddCounter+" numbers are odd: "+odStr);

所以你的代码的偶数/奇数数组的整个第二部分消失了。而且根本就没有数组了。

【讨论】:

  • 成功了!你是最好的。有一个伟大的!
【解决方案2】:

当 evenArray 和 oddArray 在最后一个 for 循环完成后有值时。您只需使用 2 另一个循环来打印这 2 个数组。

7evenCounter + 1

5oddCounter + 1

例如: String s = "这些" + (evenCounter + 1) + "数字是偶数:" ....打印你的数组。

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2012-08-07
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多