Domanda Risolto QUADRATO DI ASTERISCHI

Stato
Discussione chiusa ad ulteriori risposte.

AShatti

Utente Bronze
13 Luglio 2019
35
13
2
31
[C]
Salve a tutti!

Sono nuovo, se ho fatto qualche errore nel postare questa domanda mi scuso in anticipo.

Questo e' l'esercizio che devo risolvere:

"Scrivete un programma che legga il lato di un quadrato
e poi stampi quel quadrato con asterischi. Ad esempio, se il programma legge una dimensione pari a 4:
****
****
****
**** "
Ho risolto facilmente con due cicli for in questo modo:

#include <stdio.h>

int main(void){

int lato;
int contatore1;
int contatore2;

printf("Inserisci lato: ");
scanf("%d",&lato);

for(contatore2=0;contatore2<lato;contatore2++){
puts("");

for(contatore1=0;contatore1<lato;contatore1++){
printf("*");
}
}
puts("");
}

Il dubbio consiste che nello stesso programma voglio usare due cicli while, quindi dovrei fare

#include <stdio.h>

int main(void){

int lato;
int contatore1=0;
int contatore2=0;

printf("Inserisci lato: ");
scanf("%d",&lato);

while(contatore2<lato){
puts("");

while(contatore1<lato){
printf("*");
contatore1++;
}

contatore2++;
}
}

Quest'ultimo con i cicli while mi restituisce: una sola serie di asterischi indipendentemente dal lato dato in input e una serie di spazi.
Non riesco a trovare l'errore. Scusate per l'ignoranza.
Grazie mille.
 
Ultima modifica da un moderatore:
[C]
Salve a tutti!

Sono nuovo, se ho fatto qualche errore nel postare questa domanda mi scuso in anticipo.

Questo e' l'esercizio che devo risolvere:

"Scrivete un programma che legga il lato di un quadrato
e poi stampi quel quadrato con asterischi. Ad esempio, se il programma legge una dimensione pari a 4:
****
****
****
**** "
Ho risolto facilmente con due cicli for in questo modo:

#include

int main(void){

int lato;
int contatore1;
int contatore2;

printf("Inserisci lato: ");
scanf("%d",&lato);

for(contatore2=0;contatore2 puts("");

for(contatore1=0;contatore1 printf("*");
}
}
puts("");
}

Il dubbio consiste che nello stesso programma voglio usare due cicli while, quindi dovrei fare

#include

int main(void){

int lato;
int contatore1=0;
int contatore2=0;

printf("Inserisci lato: ");
scanf("%d",&lato);

while(contatore2 puts("");

while(contatore1 printf("*");
contatore1++;
}

contatore2++;
}
}

Quest'ultimo con i cicli while mi restituisce: una sola serie di asterischi indipendentemente dal lato dato in input e una serie di spazi.
Non riesco a trovare l'errore. Scusate per l'ignoranza.
Grazie mille.

Non azzeri il contatore1 quando incrementi il contatore2.
Il contatore1 sarà uguale al lato nelle seguenti iterazioni e non entrerà nel ciclo interno!
 
Stato
Discussione chiusa ad ulteriori risposte.