如何使用数组找到直方图?

时间:2016-06-28 16:45:28

标签: java arrays optimization methods data-visualization

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

此代码从数组中的用户获取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 ); } 
 }}

2 个答案:

答案 0 :(得分:0)

 if(anArray > 0) {

你总是> 0所以你总是得到1 x *

你必须修改你的if子句:

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

依旧......

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

就像你要求的那样:

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

答案 1 :(得分:0)

  

此代码从数组中的用户获取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

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

当你写道:

  

anArray [0] = 1-9;

你真的想写那个意味着&#34;让数组的第0个元素是数字1减去9&#34; (= -8)?

或者您是否打算输入间隔? (意思是从1到9的数字)。

然后你说

  

if(anArray&gt; 0)

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