-3

我是Java的初学者。我正在使用Deitel和Deitel来学习Java,练习中的一个问题要求你打印三角形。这是问题:

(三角形打印程序)编写一个应用程序,分别显示以下图案,一个在另一个之下。使用 for 循环生成模式。所有星号 (*) 都应由一个表格的单个语句打印,System.out.print( '*' );这会导致星号并排打印。表格的语句System.out.println();可用于移动到下一行。System.out.print( ' ' );` 形式的语句可用于显示最后两个模式的空格。程序中不应有其他输出语句。

(a)   (b)        (c)   (d)
* ********** ********** *
** ********* ********* **
*** ******** ******** ***
**** ******* ******* ****
***** ****** ****** *****
****** ***** ***** ******
******* **** **** *******
******** *** *** ********
********* ** ** *********
********** * * **********

我得到了 a,但我需要一些关于 b、c 和 d 的帮助。提前致谢!:)

PS这是我的代码:

public class p5_15
{
    public static void main( String[] args )
    {

        int line;
        int star;

        for( line = 1; line <= 10; line++ )
        {
            for( star = 1; star <= line; star++ )
            {
                System.out.print( "*" );
            }
            System.out.println();
        }
    }
} 
4

2 回答 2

2

您需要使用嵌套在另一个 for 循环中的 for 循环。语法看起来像:

for(int i = 0; i < n; ++i)
    for(int j = 0; j < i; ++j)
       ...

根据您要绘制的三角形,您需要使用替换...为的表达式以及第二个 for 循环的初始化和条件。

例如,在 (c) 中,在第一行 (i=0),您希望 j 从 0 开始并递增到 9(即您打印的星数 - 1)。然后下一行 (i=1),您希望 j 从 0 开始并增加到 8。您应该已经注意到一个模式。

于 2013-06-16T10:34:52.960 回答
1

这里有很多人可以在 5 分钟内为您编写答案。但我认为这对你没有帮助。

所以这里有一个关于 >>you<< 如何自己解决这个问题的提示。

  • 取所需输出中的每一行,并计算有多少星和空格。例如,第一行由“1 星、1 空间、9 星、1 空间、9 星、1 空间和 1 星”组成。

  • 在连续的行中寻找模式。

  • 根据您推断的模式和问题陈述中的说明,找出如何输出第 i 行。

  • 弄清楚如何输出所有的行。

这个练习都是关于for循环的。

于 2013-06-16T11:43:39.730 回答