Stampare un triangolo di asterischi in C

La programmazione in C offre una vasta gamma di opportunità per esplorare concetti fondamentali come cicli, condizioni e gestione dell'output. Un esercizio pratico ed educativo per familiarizzare con questi concetti è la stampa di un triangolo di asterischi. In questa guida, vedremo come utilizzare il linguaggio C per stampare un triangolo di asterischi, spiegando ogni passo in maniera dettagliata.

L'obiettivo è scrivere un programma in C che, quando eseguito, stampi a schermo un triangolo composto da asterischi (*). Questo esercizio non solo aiuta a comprendere meglio come utilizzare i cicli e le istruzioni condizionali in C, ma stimola anche il pensiero logico e la capacità di risoluzione dei problemi.

Struttura del programma per stampare un triangolo

Per realizzare questo compito, avremo bisogno di:

  • Variabili: per memorizzare il numero di righe del triangolo e per iterare i cicli.

  • Cicli: due cicli annidati, uno per le righe e uno per stampare gli asterischi e gli spazi.

  • Istruzioni condizionali: per determinare dove stampare asterischi e dove spazi.

Iniziamo dichiarando le variabili necessarie. Avremo bisogno di una variabile per il numero delle righe (int righe;) e due variabili di controllo per i cicli (int i, j;).

int righe, i, j;

Chiediamo all'utente quante righe di asterischi vuole nel triangolo:

printf("Inserisci il numero di righe: "); scanf("%d", &righe);

Utilizziamo due cicli for annidati. Il primo ciclo itera sulle righe, mentre il secondo stampa gli spazi e gli asterischi.

for(i = 1; i <= righe; i++) {     // Stampa spazi     for(j = i; j < righe; j++) {         printf(" ");     }     // Stampa asterischi     for(j = 1; j <= (2 * i - 1); j++) {         printf("*");     }     printf("\n"); }

In particolare gli spazi vengono stampati per allineare gli asterischi a destra, creando la forma di un triangolo. Il numero di spazi diminuisce con ogni riga incrementata. Mentre, Il numero di asterischi in ogni riga segue una sequenza (1, 3, 5, ...), quindi usiamo (2*i-1) per calcolarlo.

Unendo tutti i pezzi di codice, otteniamo il seguente programma:

#include <stdio.h> int main() {     int righe, i, j;     printf("Inserisci il numero di righe: ");     scanf("%d", &righe);     for(i = 1; i <= righe; i++) {         // Stampa spazi         for(j = i; j < righe; j++) {             printf(" ");         }         // Stampa asterischi         for(j = 1; j <= (2 * i - 1); j++) {             printf("*");         }         printf("\n");     }     return 0; }