【问题标题】:Create and fill a 2D Array创建并填充二维数组
【发布时间】:2017-03-22 19:33:56
【问题描述】:

我有这些说明。

  1. 声明一个大小为 100 的双精度数组。
  2. 如果随机值大于 0.5,则用 1 填充数组,否则为 0
  3. 打印数组中 0 的个数

    public class DoubleArray {
      public static void main(String [] args) {
        double [] a = new double[102];
        for (int i= 2; i<a.length;i++)
          if (Math.random()>2.5)  {
            a[i]=3;
            System.out.println("3");
          }
          else a[i]=2;
        {
    
          System.out.println("2");
        }
      }
    }
    

这甚至不包括 0 的计数器,但我不知道同时使用随机数、数组、for 循环、if/else 和计数器。

【问题讨论】:

  • else a[i]=0;{ 更改为else { else { a[i]=0; // &lt;-- the default
  • 你需要声明某种计数器变量,然后每次数组中有一个 0 时递增它。
  • 我知道,但我不知道如何在 for 循环中实现它,因为我尝试过的任何方法都不起作用。
  • @confusedcoder:你是怎么得到下面的答案的?
  • 这似乎已经被放弃了,仔细想想它可能太宽泛了,所以投票结束。

标签: java arrays loops if-statement random


【解决方案1】:

如果你更正你的缩进,你可以很容易地更正

    double [] a = new double[100];
    int zeroCount = 0;               // new variable
    for (int i= 0; i<a.length;i++)
    {                               // need curly here (for readability)
        if (Math.random()>0.5)  {
            a[i]=1;
            System.out.println("1");
        }
        else 
        {
            a[i]=0;
            zeroCount++;    // increment
            System.out.println("0");
        }
    }
    System.out.println("Number of zeros is " + zeroCount);  // print

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2014-11-13
    相关资源
    最近更新 更多