使用数组构建/输出直方图我错了吗?
此代码从数组中的用户获取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 ); }
}}
答案 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值的数组对象的变量。