2017-10-19 152 views
0

我想使用嵌套循環創建此形狀。使用嵌套循環創建形狀

$**** 
*$*** 
**$** 
***$* 
****$ 
與我的代碼

然而,

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

的結果是:

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

是如何在每個循環的每一個循環和移動位置創建$?

+0

只是檢查內部和外部循環索引是否相等並打印'$'否則打印'*'。在內部循環內部做所有'cout'。對於(列= 1;列<=計數器;列++)',也使兩個循環的迭代次數相同(對於(列= 1;列<=行;列++))=>。 –

+0

@Saramali,不,它不是功課。這是參考書中的一個問題。我想練習我的嵌套循環。 – engkhsky

+0

*如何在每個循環中創建$並在每個循環中移動位置?* - 編寫家庭作業任務的目標是如果您有能力自己弄清楚這一點,而不是在此要求您給出答案。否則,你遇到的任何編程問題,你所需要的只是在這裏詢問並得到答案,而這不是你學習編寫程序的方式。 – PaulMcKenzie

回答

1

您只更改打印的「*」數量。爲了實現你想要的東西,你可以嘗試這樣的事情。

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

謝謝!我沒有看過你的答案,因爲有人在評論中說如果使用其他答案。 – engkhsky

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;  
    } 
} 
-1

我想這是你想要

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

你需要打印的「$」時,內循環和外循環計數是相同的,在其他情況下打印「 *」。這個代碼應該適合你

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