Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: For lause

zokin [02.10.2010 23:59:50]

#

Voisko joku ystävällisesti kertoa mitä toi jälkimmäinen lause tässä tekee, kun mistään oppaista ei oo apua tai sitten en vaan tajua

int i, j, t;
char name[50];
printf("What is your name? ");
scanf("%s", name);
t=0;
{
for(i=0; i<strlen(name);i++)
for (j='a'; j<=name[i];j++)
t++;
}
printf("%d\n", t);

Mod. lisäsi kooditagit

Metabolix [03.10.2010 00:01:20]

#

Jälkimmäinen for-silmukka, vai? Siinä laitetaan muuttujaan j merkin 'a' numeerinen arvo (ASCII-järjestelmässä 97) ja korotetaan j:tä, kunnes sen arvo ylittää name-tekstin kohdassa i olevan merkin arvon. Jokaisella kierroksella lisätään muuttujan t arvoon yksi.

Silmukassa sinänsä ei ole mitään ihmeellistä, kunhan ymmärrät, että tekstikin on tietokoneen muistissa vain peräkkäisinä lukuina. Esimerkiksi teksti "hei" on muistissa lukuina 104, 101, 105 ja 0. (Luku nolla tarkoittaa C:n merkkijonoissa tekstin päättymistä.)

zokin [03.10.2010 00:23:34]

#

Kiitos.jotinkin ajattelinkin että tohon Ascii hommaan se liittyy mutta en löytänyt sitä ns. langan päätä

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta