/* Summan laskeminen */ #include main() { int n,i; long long int sum; /* 'long long int' on kokonaislukutyyppi, mutta siihen voidaan sijoittaa * suurempia lukuja kuin tavalliseen int-tyyppiseen muuttujaan. * On myös olemassa 'long int', mutta se on yleensä sama kuin 'int'.*/ printf("Calculate the sum of n first positive integers.\nEnter n: "); scanf("%i",&n); /* for-lauseke on toinen paljon käytetty toisto- eli silmukkarakenne. Siinä eritellään * ennen toistorakenteen alkua suoritettava alkulause (esim. laskurin alustus) * ja toistorakenteen viimeinen käsky (esim. laskurin kasvatus). * for-lause on muotoa * * for(alkulause; ehtolauseke; loppulause) * { * toistettavat lauseet; * } * * Suoritus etenee seuraavasti: * 1. suoritetaan alkulause * 2. tarkistetaan, onko ehtolauseke tosi * 3. suoritetaan toistettavat lauseet * 4. suoritetaan loppulause * 5. tarkistetaan, onko ehtolauseke tosi * 6. suoritetaan toistettavat lauseet * 7. suoritetaan loppulause * * ja niin edelleen, kunnes ehtolauseke on epätosi. * */ /* Esimerkkinä for-lauseen käytöstä lasketaan n:n ensimmäisen positiivisen * kokonaisluvun summa. */ sum=0; /* Summa alustetaan ensin nollaksi ja sitä kasvatetaan toistorakenteessa. */ for(i=1,sum=0; i<=n; i++) /* HUOM! Puolipisteet käskyjen välissä */ { sum += i; } printf("The sum is %lli.\n",sum); /* Koodi %lli viittaa long long int -tyyppiseen muuttujaan */ /* Alkulauseita voi olla useampi. Esim. käsky sum=0 voidaan sijoittaa niihin. Lisäksi, * jos toistettavia lauseita on vain yksi, aaltosulkeita ei tarvitse. * for(i=1,sum=0; i<=n; i++) * sum += i; * */ /* Vastaavan ohjelman voisi kirjoittaa while-rakenteella. * sum=0; * i=1; * while(i<=n) * { * sum += i; * i++; * } * */ }