【问题标题】:How can I find Histogram using arrays?如何使用数组找到直方图?
【发布时间】:2016-06-29 03:31:37
【问题描述】:

使用数组构建/输出直方图我哪里错了?

此代码从数组中获取用户的 5 个输入并显示星数,例如,如果用户输入 3,则将显示 *** 等等。我错在哪里?

  public class P20 {
  public static void main(String[] args) {

   int[] anArray;
   int Number;
//setup variable value
   anArray = new int [10];
   System.out.println("Enter some numbers between 1 and 100.");

  for (int i = 0; i < 10; i++) {
    System.out.println(i);

   anArray[0] = 1-9;
   anArray[1] = 10-19;
   anArray[2] = 20-29;
   anArray[3] = 30-39;
   anArray[4] = 40-49;
   anArray[5] = 50-59;
   anArray[6] = 60-69;
   anArray[7] = 70-79;
   anArray[8] = 80-89;
   anArray[9] = 90-100;
   if(anArray > 0) {
  System.out.println("*"+Number );   

  else if(anArray > 20) 
  {
   System.out.println("**"+Number ); 
  }
  else if (anArray > 30) 
  {
   System.out.println("***"+Number ); 
  }    
  else if (anArray > 40) 
  {
   System.out.println("****"+Number ); 
  }            
  else if (anArray > 50) 
  {
  System.out.println("*****"+Number ); } 
 }}

【问题讨论】:

  • 用户输入3,还是输入30时,需要加***吗?
  • 如果是 30 那么它将打印 30 *
  • 您需要以某种方式获取输入,然后在循环中执行此操作:anArray[input/10]++;

标签: java arrays optimization methods data-visualization


【解决方案1】:

此代码从数组中获取用户的 5 个输入并显示星数,例如,如果用户输入 3,则将显示 *** 等等。我错在哪里?

此代码不接受用户的输入。

您希望用户输入一个值,然后打印他/她写的星数。你可以这样做:

public class P20 //Why don't you try giving names that are easier to remember
{
    public static void main(String[] args)
    {

        for (int i=0; i<args[0]; i++)
        {
            System.out.print("*");
        }
}

其中 args[0] 是调用时给程序的第一个参数:

java P20 3

无论如何,让我尝试指出您的代码中的一些错误:

你写的时候:

一个数组[0] = 1-9;

你真的想写成“让数组的第 0 个元素是数字 1 减 9”(=-8) 吗?

或者您是否打算输入一个间隔? (表示从 1 到 9 的数字)。

然后你说

如果(一个数组> 0)

这对我来说没有意义,因为 anArray 是一个 int[] 变量而不是一个 int 变量。这意味着 anArray 不是直接指向数字的变量,而是指向包含多个 int 值的数组对象。

【讨论】:

    【解决方案2】:
     if(anArray > 0) {
    

    你永远是&gt; 0,所以你永远只会得到 1 x *

    你必须像这样修改你的 if 子句:

    if (anArray > 0 && anArray < 20){
    

    等等……

    编辑:------------------------------ --------------

    如您所愿:

    public String stars(int n) {
        if (n == 1){
          return "*";
        }else{
          return "*" + stars(n-1);
        }
      }
    

    【讨论】:

    • 你能在java中制作星*的直方图吗?用户将接受输入,如果用户输入2则**会显示
    猜你喜欢
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多