Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 仅显示1-99之间奇数的随机数,在5个句子中显示20个数字_Java_Arrays - Fatal编程技术网

Java 仅显示1-99之间奇数的随机数,在5个句子中显示20个数字

Java 仅显示1-99之间奇数的随机数,在5个句子中显示20个数字,java,arrays,Java,Arrays,这个问题我需要帮助。我试图让程序在5个句子中显示1-99之间的奇数随机数,每个句子中有20个值。这就是我想到的,它在每句话中只显示了一个值。其余的请帮我。多谢各位 int[] n = new int[20]; int i = 1; while (i<=5) { int x=(int) (Math.random()*100); x=x*2+1; while (x<=100) { f

这个问题我需要帮助。我试图让程序在5个句子中显示1-99之间的奇数随机数,每个句子中有20个值。这就是我想到的,它在每句话中只显示了一个值。其余的请帮我。多谢各位

  int[] n = new int[20]; 
  int i = 1;
  while (i<=5)
   {
       int x=(int) (Math.random()*100);
       x=x*2+1;
       while (x<=100)
       {    
           for (int index = 0; index < n.length; index++) 
               {
                    n[index] = (int) (Math.random()*100); 
               }
           for (int index = 0; index < n.length; index++)
               {
                   System.out.print(x + " ");           
               }
           System.out.printf();
           i++;
           break;
       }
 }

OP的代码声明它需要奇数,并且需要显示,我认为这意味着只需要转储输出。希望这个答案能提供指导,而不仅仅是复制/粘贴作为家庭作业问题的解决方案

public static void main(String[] args)
{
    int[] odds = new int[100];

    Random rnd = new Random();

    for (int i = 0; i < odds.length; ++i) {
        int nxt = 0;
        while ( (nxt % 2) == 0) {
            nxt = rnd.nextInt(99) + 1;
        }
        odds[i] = nxt;
    }

    for (int i = 0; i < odds.length; ++i) {
        System.out.print(String.format("%2d ", odds[i]));

        if ((i + 1) % 20 == 0) {
            System.out.println();
        }
    }
}
样本输出:

73 15 71 15 21 23 63 97 11 89 39 75 33 53 31 25 43 47 69 87 85 93 39 59 41 19 67 77 55 53 19 29 49 23 93 63 73 41 71 27 15 31 39 99 47 43 85 67 81 75 15 37 55 33 97 73 45 47 37 73 93 89 35 31 29 59 35 61 71 79 15 45 49 11 27 73 23 21 13717931992977219591632183434961611


使用以下内容更新您的代码:

int[] n = new int[20]; 
  int i = 1;
  while (i<=5)
   {
    int x=(int) (Math.random()*100);
    x=x*2+1;
    while (x<=100)
    {   
      for (int index = 0; index < n.length; index++) 
      {
        n[index] = (int) (Math.random()*100); 
      }
      for (int index = 0; index < n.length; index++)
      {
          int x1=(int) (Math.random()*100);
        x1=x1*2+1;
        System.out.print(x1 + " ");          
      }
     System.out.printf("\n");
      i++;
        break;
  }


} 

您的代码在此处被破坏:

 for (int index = 0; index < n.length; index++){
       System.out.print(x + " ");           
 }
您正在打印的值是开始时在up中计算的值x的20倍

我会这样做:

public static void main(String[] args) {
    int[] n = new int[20];
    int i = 1;
    while (i <= 5) {
        for (int index = 0; index < n.length; index++) {
            // random number between 0-49 then multiplied by 2 +1 still be
            // between 0 and 1-100
            n[index] = (int) (new Random().nextInt(49) * 2 + 1);
        }
        // pretty easy way to print arrays, no loop needed.
        System.out.println(Arrays.toString(n));
        i++;
    }
}

请包括输入、当前输出和所需输出。此答案是否将值保持在1-99之间?我不这么认为。我非常关心它的答案在每句话中只显示了一个值。