2017-10-19 1 views
0

Je souhaite créer cette forme à l'aide d'une boucle imbriquée.Création de formes à l'aide d'une boucle imbriquée

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

Cependant, avec mes codes,

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

le résultat est:

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

Comment est de créer $ dans chaque boucle et les positions se déplaçant dans chaque boucle?

+0

Vérifiez simplement si les indices de boucle interne et externe sont égaux et imprimez '$' sinon imprimez '*'. Faites tous les 'cout's dans la boucle intérieure. Faire aussi que les deux boucles aient le même nombre d'itérations 'pour (colonne = 1; colonne <= ligne; colonne ++)' => 'pour (colonne = 1; colonne <= compteur; colonne ++)'. –

+0

@Saramali, non ce n'est pas les devoirs. C'est une question du livre de référence. Je veux pratiquer ma boucle imbriquée. – engkhsky

+0

* Comment créer $ dans chaque boucle et dans chaque boucle? * - Le but de la programmation des devoirs est de savoir si vous avez l'aptitude de comprendre cela vous-même, et ne demandez pas ici de vous donner la réponse. Sinon, tout problème de programmation que vous rencontrez, tout ce dont vous avez besoin est de demander ici et d'obtenir une réponse, et ce n'est pas la façon dont vous apprenez à écrire des programmes. – PaulMcKenzie

Répondre

1

Vous modifiez seulement la quantité de "*" que vous imprimez. Pour réaliser ce que vous voulez, vous pouvez essayer quelque chose comme ça.

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

Merci! Je l'ai fait sans regarder votre réponse, puisque quelqu'un a dit dans le commentaire d'utiliser sinon. – engkhsky

0

Dans votre code, la condition de la boucle imbriquée est incorrecte dans laquelle elle imprime uniquement les valeurs en fonction du numéro de ligne. Toutefois, vos valeurs dans chaque ligne resteront identiques. Seul, le signe dollar continuera à se déplacer. Essayez également de créer des fonctions génériques qui prendront un nombre entier comme entrée pour le nombre de lignes, ce qui est une très bonne approche. Voici la solution:

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

Je pense que c'est ce que vous voulez

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

Vous devez imprimer le « $ » lorsque la boucle intérieure et le nombre de boucle extérieure est la même et dans d'autres imprimer des cas ' * '. Ce code devrait fonctionner pour vous

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