[C] Utilizzo ciclo for

Quasar3.14
Buonasera è da poco che ho iniziato a studiare programmazione quindi probabilmente il problema risulterà banalissimo ai più.
Devo svolgere un esercizio che mi chiede di utilizzare due cicli for in modo che stampi a video le seguenti righe

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

Sono riuscito a svolgere un esercizio simile in cui invece degli asterischi mi si chiedeva di stampare i primi dieci numeri utilizzando sempre il ciclo for.
Sto riscontrando difficoltà ad incrementare ad ogni riga il numero di asterischi. Qualche suggerimento ? Grazie

Risposte
Raptorista1
Mostra un po' di codice!

axpgn
for r = 1 to 7
 
   for a = 1 to r

         print "*";
 
   next a

    print

next r

Quasar3.14
Il punto è che non saprei proprio come iniziare, ho rivisto le dispense e il libro e mi è chiaro il funzionamento di for e while.
Per esempio per quanto riguarda i numeri mi è stato facile scrivere questo codice
#include <stdio.h>
int main()
{
	int i;
	for(i=0;i<11;i++)
	printf("%d\n", i);
	getchar();
}

Ora lo so che dovrebbe essere un esercizio simile. Mi è chiaro che devo cambiare il tipo di variabile da int a char e assegnare alla variabile il valore '*', ma su come farlo a incrementare con un ciclo for non saprei.

Quasar3.14
"axpgn":
for r = 1 to 7
 
   for a = 1 to r

         print "*";
 
   next a

    print

next r


Grazie ragazzi per le risposte. Scusami ma non mi è chiaro come tradurre ciò che hai scritto in codice.

axpgn
Il ciclo interno che stampa gli asterischi prende come "limite superiore" il numero di riga attualmente "in vigore" ... non è possibile annidare for in C ?

Raptorista1
Il codice che hai scritto va abbastanza bene. Nell'esercizio attuale, anziché ad ogni iterazione stampare un numero devi stampare un certo numero di asterischi. La domanda quindi diventa: Come fare per stampare un numero [inline]n[/inline] di asterischi?

Quasar3.14
"Raptorista":
Il codice che hai scritto va abbastanza bene. Nell'esercizio attuale, anziché ad ogni iterazione stampare un numero devi stampare un certo numero di asterischi. La domanda quindi diventa: Come fare per stampare un numero [inline]n[/inline] di asterischi?


La domanda la conosco è la risposta che mi manca :D Scherzi a parte, se provo a mattere giù un po' di codice, scrivo cose di questo genere che so essere sbagliato anche perché il numero di asterischi non viene incrementato ma scrivo solo un asterisco per ogni riga
#include <stdio.h>
int main()
{
	char ast;
	ast = '*';
	int i;
	for(i=0; i<6;i++)
	printf("%c\n", ast);
	
}

Raptorista1
Risolvi il sotto-esercizio da solo: dato [inline]int n = 5[/inline] stampare su una riga [inline]n[/inline] asterischi.

Dr. Akim
"Quasar3.14":
Buonasera è da poco che ho iniziato a studiare programmazione quindi probabilmente il problema risulterà banalissimo ai più.
Devo svolgere un esercizio che mi chiede di utilizzare due cicli for in modo che stampi a video le seguenti righe

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

Sono riuscito a svolgere un esercizio simile in cui invece degli asterischi mi si chiedeva di stampare i primi dieci numeri utilizzando sempre il ciclo for.
Sto riscontrando difficoltà ad incrementare ad ogni riga il numero di asterischi. Qualche suggerimento ? Grazie


Ciao!
Spero di risponderti nel modo più chiaro di possibile

Dunque, devi farlo un numero prestabilito di volte o devi leggerlo da tastiera?
Il fatto che ti dica di usare due cicli for dovrebbe guidarti nella risoluzione dell'esercizio, ti propongo la mia idea:
#include <stdio.h>

int main (){
    int i, j;
    for(i=0;i<7;i++){
        for(j=0;j<i+1;j++) printf("*");
        printf("\n");
    }
    return 0;
}


Così non devi stare a romperti le scatole con conversioni di tipo ecc.
Ti soddisfa? Fammi sapere :)
Ciao!

P.s: come si inseriscono i tab nel codice?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.