输出
*****
***
*
代码(我的尝试)
for (int lines = 3; lines >= 1; lines--)
{
if (lines == 3)
System.out.printf("%1s", " ");
else if (lines == 2)
System.out.printf("%2s", " ");
else if (lines == 1)
System.out.printf("%3s", " ");
for (int stars = 1; stars <= 2* lines - 1; stars++);
{
System.out.print('*');
}
System.out.println();
}
我得到了这个:
*
*
*
我找不到问题,代码应该运行并运行
答案 0 :(得分:1)
for (int lines = 3; lines >= 1; lines--)
{
if (lines == 3)
System.out.printf("%1s", " ");
else if (lines == 2)
System.out.printf("%2s", " ");
else if (lines == 1)
System.out.printf("%3s", " ");
for (int stars = 1; stars <= 2* lines - 1; stars++)
System.out.print('*');
System.out.println();
}
我有A&#34 ;;&#34;在我的第二次在原始循环之后,这使得它只能运行而不是循环!
答案 1 :(得分:0)
尝试这样的事情,或许:
for(int lines = 3; lines >= 1; lines--)
{
if (lines == 1)
System.out.printf("%3s", " ");`
else if (lines == 2)
System.out.printf("%2s", " ");
else if (lines == 3)
System.out.printf("%1s", " ");
for(int stars = 1; stars <= 2 * lines - 1; stars++)
System.out.print ('*');
System.out.println();
}
你是在正确的道路上,但基本上,你只需要反转第一个“for”循环(让它倒数而不是向上)[这个部分做得正确],调整脚本做3行而不是4 [也正确完成],并保留第二个“for”循环,因为它已经考虑了多少行//从前一个代码开始的哪一行。我希望这是有道理的,并解决了你的问题。 :P
答案 2 :(得分:0)
你可以试试这个;虽然代码不整齐,但它有效,并且它基于您的原始代码:
for(int stars =5,lines = 1,j; lines <= 4; lines++)
{
if (lines == 1)
System.out.printf("%1s", " ");
else if (lines == 2)
System.out.printf("%2s", " ");
else if (lines == 3)
System.out.printf("%3s", " ");
else if (lines == 4)
System.out.printf("%4s", " ");
j=stars;
for( ; j > 0; j--)
System.out.print ('*');
stars-=2;
System.out.println();
}