1

我想创建一个程序,它使用两个 for 语句来显示如下所示的星号模式。

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

我可以让他们使用相当多的 for 语句,但我只想使用其中的 2 个,以使其更短,这就是我所拥有的:

 #include <iostream>
 #include <iomanip>
 using namespace std;

 int main()
 {
 int row = 1;
 int astrk = 1;

 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 2; astrk += 1)
 cout << '*';
 cout << endl;
 }// end for
 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 4; astrk +=1)
 cout << '*';
 cout << endl;
 }//end for
 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 6; astrk += 1)
 cout << '*';
 cout << endl;
 }// end for
 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 8; astrk += 1)
 cout << '*';
 cout << endl;
 }// end for
 for ( int row = 1; row < 2; row += 1)
 {
 for ( int astrk = 1; astrk <= 10; astrk += 1)
 cout << '*';
 cout << endl;
 }// end for

 return 0;
 }

请帮忙?:)

4

4 回答 4

1

您应该有一个用于行数的外部循环,以及一个用于星号的内部循环。当内部循环完成打印星号时,外部循环打印一个换行符,并增加星号计数。

在伪代码中:

for (from one to the number of lines)
{
    for (one to the number of asterisks)
    {
        print an asterisk
    }

    print a newline
    increase number of asterisks
}
于 2012-11-23T03:40:01.847 回答
0

你也可以试试下面的代码

  for(int i=0;i<6;i++){//used to print out rows

        for(int j=0;j<=i;j++){used to print asterisk in each row
                cout<<"**";
                }
        cout<<endl;
        }

欲了解更多详情,请访问:http: //include.site40.net/aasterics.php

于 2013-05-29T13:32:28.397 回答
0

注意模式:

第 1 行有 2 个星号,第 2 行有 4 个星号,第 3 行有 6 个星号,...

要打印的星号数由行号乘以 2 确定。

就像 emartel 显示的那样,您可以通过将内部 for 循环的测试表达式基于外部循环的当前 i 值(行号)乘以 2(要打印的单个星号的数量)来动态确定内部 for 循环将运行多少次。

像这样的大多数问题将归结为让内部 for 循环以某种巧妙的方式使用外部 for 循环计数器值来打印所需的输出模式。

于 2012-11-23T03:56:39.137 回答
0

您应该使用两个for循环来重写它,一次控制行,另一个控制列。

你有 5 行,每行有 2、4、6 等等……星。

for(int i = 1; i <= 5; ++i) // five rows
{
    for(int j = 1; j <= i * 2; ++j) // we have 2 stars for each row number -> 2, 4, 6, etc...
    {
        cout << "*";
    }
    cout << "\n";
}

尝试了解您的问题,在纸上找出解决方案,然后尝试实施它,如果您正在学习如何编程,这将变得更简单。

于 2012-11-23T03:43:32.153 回答