Programma C per calcolare la somma dei numeri naturali

In questo esempio imparerai a calcolare la somma dei numeri naturali inseriti dall'utente.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione in C:

  • C per Loop
  • C while e do … while Loop

I numeri positivi 1, 2, 3 … sono noti come numeri naturali. La somma dei numeri naturali fino a 10 è:

 somma = 1 + 2 + 3 +… + 10 

Somma dei numeri naturali utilizzando per Loop

 #include int main() ( int n, i, sum = 0; printf("Enter a positive integer: "); scanf("%d", &n); for (i = 1; i <= n; ++i) ( sum += i; ) printf("Sum = %d", sum); return 0; ) 

Il suddetto programma prende l'input dell'utente e lo memorizza nella variabile n. Quindi, forloop viene utilizzato per calcolare la somma fino a n.

Somma dei numeri naturali utilizzando il ciclo while

 #include int main() ( int n, i, sum = 0; printf("Enter a positive integer: "); scanf("%d", &n); i = 1; while (i <= n) ( sum += i; ++i; ) printf("Sum = %d", sum); return 0; ) 

Produzione

 Immettere un numero intero positivo: 100 Somma = 5050 

In entrambi i programmi, il ciclo viene ripetuto un numero di volte. E, in ogni iterazione, il valore di i viene aggiunto alla somma e i viene incrementato di 1.

Sebbene entrambi i programmi siano tecnicamente corretti, forin questo caso è meglio usare il loop. È perché il numero di iterazioni è noto.

I programmi di cui sopra non funzionano correttamente se l'utente immette un numero intero negativo. Ecco una piccola modifica al programma precedente in cui continuiamo a ricevere input dall'utente finché non viene inserito un numero intero positivo.

Leggere l'input fino a quando non viene immesso un numero intero positivo

 #include int main() ( int n, i, sum = 0; do ( printf("Enter a positive integer: "); scanf("%d", &n); ) while (n <= 0); for (i = 1; i <= n; ++i) ( sum += i; ) printf("Sum = %d", sum); return 0; ) 

Visita questa pagina per scoprire come trovare la somma dei numeri naturali usando la ricorsione.

Articoli interessanti...