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编程的新手。请帮我找出解决办法。

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

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();
}
}
}

我希望这对你正在努力实现的目标有所帮助!

您需要读入五个整数,然后完成后,对它们执行操作。这意味着您需要某种方法来存储所有五个整数。

显而易见的解决方案是将它们存储在一个数组中。

public class Q034_trial 
{
public static void main (String[] args) 
{          
Scanner input = new Scanner (System.in);
int[] nums = new int[5];

for (int i = 0; i < 5; i++)
{ 
System.out.printf("Enter a number: ");
int num = input.nextInt();
nums[i] = num;
}
}            
}

完成此操作后,您只需要对数组中的每个数字进行迭代,即可打印正确数量的星号。

public class Q034_trial 
{
public static void main (String[] args) 
{          
Scanner input = new Scanner (System.in);
int[] nums = new int[5];

for (int i = 0; i < 5; i++)
{ 
System.out.printf("Enter a number: ");
int num = input.nextInt();
nums[i] = num;
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < nums[i]; j++) 
System.out.printf("*");
System.out.println();
}
}            
}

相关内容

  • 没有找到相关文章

最新更新