打印一行星号

时间:2014-02-27 02:23:54

标签: c++

我正在用c ++编写一个程序,我必须以n + 1的增量打印n个星号行。基本上程序的流程必须如下:

1 *

2 * **

3 * ***

我的程序现在只打印出一排有序的星号

#include <iostream>
using namespace std;

int main()
{
    int x = 0, y = 0;
    char s = '*';

    cout << "Input x" << endl;
    cin >> x;
    cout << "Input y" << endl;
    cin >> y;
    cout << endl;
    for (int i = x; i <= y; i++)
    {
        cout << i<<"# ";
        for (int j = 1; j <= i; j++)
        {
            cout << s;
        }
        cout << endl;
    }
    system("PAUSE");
    return 0;
}

任何人都可以帮我弄清楚如何让这个程序以n + 1的顺序打印星号吗?

5 个答案:

答案 0 :(得分:1)

您想再添加一个星号,以便在内循环中添加一个:

for (int j = 1; j <= i+1; j++)

内部循环是打印星号数量的循环。每次运行时都会打印一个星号。

答案 1 :(得分:1)

内部循环必须按以下方式定义

    for (int j = x; j <= i; j++)
    {
        cout << s;
    }

而不是int j = 1必须有int j = x

至少我得到了以下结果

Input x 3
Input y 

3# *
4# **
5# ***
6# ****
7# *****
8# ******
9# *******
10# ********

如果您希望这些数字以1开头,请将cout << i<<"# ";更改为cout << i - x + 1 <<"# "; 或者您可以写cout << setw( 2 ) << i - x + 1 <<"# ";,前提是您已添加标题<iomanip>

修改

如果您的意思是以下输出

3# *
4# ***
5# *****
6# *******
7# *********
8# ***********
9# *************
10# ***************

然后内循环的控制语句应该是

for (int j = x; j < 2 * i - x + 1; j++)

答案 2 :(得分:0)

我明白了。我要感谢帮助我得到这个答案的贡献者:

            for (int i = 1; i <= _howManyPrintLines; i++)
            {
                cout << i<<"# ";
                n = i-1;//helps ensure that n stays at the right number
                n = n + i;//stores each index of i and adds them
                for (int j = 1; j <= n; j++)
                {
                    cout << s;          
                }
                cout << endl;       
            }

答案 3 :(得分:0)

这是使用字符串

enter code here  #include <iostream>
#include <string>
using namespace std;
int main()
{
string a = "*";
string c;
int x;
for (x=0; x<5; x++)
{
  c+=a;
  cout<<c<<endl;
}
 return 0;
}

答案 4 :(得分:0)

稍微修改一下代码,每行只打印一个额外的星号:

int n, row;

cout << "How many rows do you want to print? ";
cin >> row;

for (int i = 1; i <= row; i++) {
    n = i - 1;
    for (int j = 0; j <= n; j++) {
        cout << '*';
    }
    cout << endl;
}