Tässä esimerkissä opit laskemaan käyttäjän syöttämien luonnollisten numeroiden summan.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C-ohjelmointiaiheista:
- C silmukalle
- C kun ja tee … silmukan aikana
Positiiviset luvut 1, 2, 3… tunnetaan luonnollisina numeroina. Luonnollisten lukujen summa enintään 10 on:
summa = 1 + 2 + 3 +… + 10
Silmukkaa käyttävien luonnollisten numeroiden summa
#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; )
Yllä oleva ohjelma ottaa käyttäjän panoksen ja tallentaa sen muuttujaan n. Sitten for
silmukkaa käytetään laskemaan summa n: ään asti.
Luonnollisten numeroiden summa, kun käytetään silmukkaa
#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; )
Tuotos
Anna positiivinen kokonaisluku: 100 Summa = 5050
Molemmissa ohjelmissa silmukka toistetaan n useita kertoja. Ja jokaisessa iteraatiossa i: n arvo lisätään summaan ja i: tä lisätään 1
.
Vaikka molemmat ohjelmat ovat teknisesti oikein, on parempi käyttää for
silmukkaa tässä tapauksessa. Se johtuu siitä, että toistojen määrä tiedetään.
Yllä olevat ohjelmat eivät toimi oikein, jos käyttäjä syöttää negatiivisen kokonaisluvun. Tässä on pieni muutos yllä olevaan ohjelmaan, jossa jatkamme käyttäjän syötteen saamista, kunnes positiivinen kokonaisluku syötetään.
Lue syöte, kunnes positiivinen kokonaisluku syötetään
#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; )
Käy tällä sivulla oppiaksesi kuinka löytää luonnollisten lukujen summa rekursiota käyttämällä.