Aiuto esercizio

di il
4 risposte

Aiuto esercizio

Ciao a tutti, sto cercando di imparare il c attraverso degli esercizi ma essendo davvero all'inizio vorrei chiedere un vostro aiuto per capire qualcosa in più.
In base ad un numero inserito dall'utente dovrei andare a creare una mezza piramide tipo:

##
###
####
#####

Codice che finora ho scritto:

int main(void)
{
int height;

do
{
printf("Inserisci un numero tra 1 e 10: ");
height = GetInt();
}
while ((height < 1) || (height > 10));

printf("Altezza: %d\n", height);

for (int i = 0; i < height; i++)
{
printf("e qui sono bloccato");
}

}

Qualcuno mi potrebbe far capire come utilizzare un loop per ricreare la suddetta mezza piramide?

Grazie

4 Risposte

  • Re: Aiuto esercizio

    Ciao,
    ma la prima riga deve contenere un singolo simbolo # oppure bisogna partire con ## come hai scritto tu? Comunque poco importa per il nostro algoritmo. Se mai farai le modifiche necessarie.

    Quando conosci l'altezza della piramide la dividi in piani e stampi ognuno separatamente.
    Ad esempio se l'altezza è 4 dovrai stampare
    ##
    ###
    ####
    #####

    cioè 4 piani. Osserva come sono fatti, partendo dall'alto. Il primo ha 2 elementi, il secondo ne ha 3, e così via. Quindi se "etichettiamo" ogni piano con un numero n, abbiamo che dovremo stampare n+1 simboli #.

    In conclusione: due cicli for annidati e hai finito.
  • Re: Aiuto esercizio

    Grazie...chiedo un'ultima cosa
    Se volessi allineare il tutto a destra come faccio a stampare degli spazi?
  • Re: Aiuto esercizio

    Nella printf puoi proprio mettere gli spazi!
    Per quanto riguarda l'allineamento, considera che se h è l'altezza della piramide allora ogni riga dovrà contenere h+1 simboli. Se non sono cancelletti allora saranno spazi...
  • Re: Aiuto esercizio

    Jedik ha scritto:


    Grazie...chiedo un'ultima cosa
    Se volessi allineare il tutto a destra come faccio a stampare degli spazi?
    Che strana domanda: non stai stampando il carattere '#'? lo 'spazio' e' solo un'altro carattere!

    Forse la domanda e': quanti spazi devo stampare?

    Be', mi sembra ovvio: basta sapere le 4 operazioni aritmetiche!

    Forse il problema e' sapere quanti caratteri ci stanno in una riga: imposta un valore a caso e ragiona di conseuenza.
Devi accedere o registrarti per scrivere nel forum
4 risposte