2015-02-11 31 views

回答

0

試試這個

int main() 
{ 
int height =10; 

for (int i = 0 ; i <= height; i++) { 
    for (int s = 0; s < i; s++) { 
     cout << "*"; 
    } 
    cout << endl; 
} 
} 
+1

如果你解釋一些事情,它通常會更有幫助,而不僅僅是提供一些代碼。 – Nathan 2015-02-11 05:39:51

2

在每個單個字符後輸出一個換行符。您只需要在外部循環中執行該操作,在每個之後都有字符。

此外,使用寬度的固定值將導致一個正方形而不是三角形。因此,您應該立足的內環上i而非height

#include <iostream> 
using namespace std; 

int main (void) { 
    int height = 7; 
    for (int i = 1 ; i <= height; i++) { 
     for (int s = 0; s < i; s++) 
      cout << "*"; 
     cout << endl; 
    } 
    return 0; 
} 

的輸出是非常三角:

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

當然,這將工作但它幾乎沒有擁抱C++語言的精髓。

什麼你真的有C代碼,但使用C++輸出方式,一些能夠讓你迅速標記爲C +程序員:-)

雖然我不會把這個作爲一個新手任務,它至少會迫使你去思考如何使用C++語言的附加設施前進:

#include <iostream> 
using namespace std; 

int main (void) { 
    int height = 7; 
    string s(height, '*'); 
    for (int i = 1 ; i <= height; i++) 
     cout << s.substr(0,i) << '\n'; 
    return 0; 
} 

這種思維會說服你在某些時候放棄字符串一般爲矢量字符數組(或數組,或許多其他類似的決定),這將使你的p編程很多將來會更快更安全。