使用嵌套循环创建形状

时间:2017-10-19 04:10:20

标签: c++ loops

我想使用嵌套循环创建此形状。

$****
*$***
**$**
***$*
****$

但是我的代码

int counter = 6;
for (row = 0; row <= counter; row ++)
{   
    cout << "$";
    for (column = 1; column <= row ; column++)
    {
    cout << "*";
    }
    cout << endl;       
}

结果是:

$*
$**
$***
$****
$*****
$******

如何在每个循环中创建$并在每个循环中移动位置?

4 个答案:

答案 0 :(得分:1)

您只会改变打印的“*”数量。为了达到你想要的效果,你可以试试这样的东西。

int count = 0;
while(count < 5){
    for(int i = 0; i < 5; ++i){
         if(i == count){
              cout << "$";
         } else{
              cout << "*";
         }
    }
    cout << endl;
    count++;
}

答案 1 :(得分:0)

在您的代码中,嵌套循环条件不正确,它只会根据行号打印值。但是,每行中的值将保持不变。只有美元符号才会继续移动。另外,尝试制作通用函数,它将整数作为行计数的输入,这是一种非常好的方法。这是解决方案:

void createDollarStars(int counter)
{
    int row,column;

    for (row = 0; row < counter; row ++)
    {   
    for (column = 0; column < counter ; column++)
    {
        if(row == column) 
        {
           cout<<"$";
        }
        else
        {
           cout << "*";
        }
    }
        cout << endl;       
    }
}

答案 2 :(得分:0)

当内循环和外循环计数相同时,您需要打印'$',在其他情况下打印'*'。此代码应该适合您

int counter = 6;
for (row = 1; row <= counter; row ++)
{   
    for (column = 1; column <= counter; column++)
    {
        if((column  == row){
                cout << "$";
         } else{
                cout << "*";
        }
    }
    cout << endl;       
}

答案 3 :(得分:-1)

我认为这就是你想要的

  for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
        if(i==j)
        cout<<"$";
        else cout<<"*";
    }
    cout<<"\n";
}