首页 > 解决方案 > Java条形图打印程序

问题描述

这是问题:

编写一个读取 1 到 30 之间的五个数字的应用程序。对于读取的每个数字,您的程序应该显示相同数量的相邻星号。例如,如果你的程序读取数字 7,它应该显示 *******。读完所有五个数字后显示星号条。

这是我的代码:

package Assignment.Q034;
import java.util.Scanner;

public class Q034_trial
{
    public static void main (String[] args) { 
             
    Scanner input = new Scanner (System.in);
    int num; 
    num = 1-30;
    
    for (int i=0; i<5; i++)// system asks for no more than 5 numbers
    { 
            System.out.printf("Enter a number: ");
                num = input.nextInt();
    }
    for (int j=0; j<num; j++)
            {
                    System.out.printf("*"); 
                    
              
            }
                    System.out.println();
        
        }            
}

使用的程序 IDE:Apache Netbeans IDE 12.4

该代码不确定任何错误,但是当我运行和调试它时,输出显示如下:

Enter a number: 1 

Enter a number: 2

Enter a number: 3

Enter a number: 4

Enter a number: 5

*****

但我需要的输出是:

Enter a number: 1 

Enter a number: 2

Enter a number: 3

Enter a number: 4

Enter a number: 5

*
**
***
****
*****

我是java编程新手。请帮我找到解决方案。

标签: javacomputer-science

解决方案


您可以尝试将它们单独分解并尝试合并这样的方法或将这些想法用于您的项目:

 import java.util.Scanner;
public class Array {
    public static void main(String[] args){

        Array asteriskGenerator = new Array();

        int nb[]=new int[5];
        Scanner input = new Scanner (System.in);
        for(int i=0;i<5;i++)
        {
            System.out.print("Please, Enter a number between 1 - 30 ");
            nb[i]=input.nextInt();
        }
        input.close();


        asteriskGenerator.asteriskGenerator(nb);
    }
    void asteriskGenerator(int nb[])
    {
        for(int i = 0; i <  nb.length; i++)
        {
            for(int j=1;j<=nb[i];j++)
            {
                System.out.print("*");
            }
            System.out.println();
        }
    }

}

我希望这对您要完成的工作有所帮助!


推荐阅读