Kezdőoldal » Számítástechnika » Programozás » C program ciklus sorrend?

C program ciklus sorrend?

Figyelt kérdés

int a;

while(a>0){

a=a/10;

db++;

}

return db;

Le tudnátok írni milyen sorrendbe végzi a műveleteket? A függvénnyel és a ciklussal azt szeretném kiszámolni hány számjegyű a szám. Ez a helyes megoldás, de én magamtól a returnhöz db-1et írtam volna, mivel az lenne logikus nekem hogy először megvizsgálom "a" nagyobb mint 0, ha igaz elosztom 10-el, majd megnövelem a db-t. Utolsó esetben a feltétel igaz, de utána megint osztok, és akkor már hamis lenne, de továbbra is hozzá adok +1et, ezért vonnék le a végén 1et. Miért vagy hülye?


2017. okt. 23. 21:25
 1/2 anonim ***** válasza:

Bekéred az a-t.

Megvizsgálja, hogy az a nagyobb-e, mint 0.

Ha nagyobb, akkor elosztja 10-zel az a-t, és db++.

Újra megvizsgálja, hogy nagyobb-e, mint 0.

Ha kisebb, vagy egyenlő, mint 0, akkor nem fogja újra elosztani 10-zel, és megnövelni a db-t, hanem kilép a ciklusból, és visszatér a db-vel, ezért is nem kell levonni belőle -1-et.

2017. okt. 23. 21:35
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:
95%

Maga a lényegi elgondolás jó, csak a kivitelezés hagy némi kivánnivalót maga után:

1. Először is függvényről beszéltél, de sehol egy függvénydeklaráció.

2. Hiányzik a db deklarálása és inicializációja.

3. A bejövő számot nem lokális változóként kéne deklarálni.


Szóval minimum így:

[link]


1234 esetén:

0. Kezdésként: szam = 1234; db = 0;

1. Mivel 1234 > 0, a ciklusmagon belül: szam = 123, db = 1;

2. Mivel 123 > 0, a ciklusmagon belül: szam = 12, db = 2;

3. Mivel 12 > 0, a ciklusmagon belül: szam = 1, db = 3;

4. Mivel 1 > 0, a ciklusmagon belül: szam = 0, db = 4;

5. Mivel 0 == 0, kilépünk a ciklusmagból, a db = 4, ezt adjuk vissza.

2017. okt. 23. 21:57
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!