2014-11-09 58 views
0

我必须编写一个C++程序,要求用户输入一个整数k然后输出k行星号,第一行从1开始星号和最后一行以k星号结束。嵌套循环和输出星号

我可以得到程序输出星号如方形: (K = 5)

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

当它应该是这样的:

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

我应该如何调整我的程序来完成这个? (注:我必须使用两个for循环)

int main() { 
    int k, cols, rows; 
    cout << " Please enter a number: "; 
    cin >> k; 

    for (cols = 1; cols < k + 1; cols++) { 
     for (rows = 1; rows < k + 1; rows++) 
      cout << "*"; 
     cout << endl; 
    } 

    getchar(); 
    getchar(); 
    return 0; 
} 

回答

1

内环应该运行col+1倍。因此,你需要通过改变它的初始值在内部循环改变条件rows < cols并有rowscols少一个0

for (cols = 1; cols < k+1; cols++) { 
    for (rows = 0; rows < cols; rows++) 
     cout << "*"; 
    cout << endl; 
}