Kezdőoldal » Számítástechnika » Programozás » C programkód miért nem veszi...

Qaxqaxqax kérdése:

C programkód miért nem veszi észre a pontot, ha 5 sorral lejjebb észreveszi?

Figyelt kérdés

A kód:

[link]


A hiba a LegalabbEgyPont nevű függvényben van. Valamiért a bemenetre hiába kerül valami@valamihu/valami@valami.hu mindenképp helyesnek titulálja. mintha észre se venné az email[i]!='.'-ot. próbáltam karakterkóddal is úgy se.

De ez mind szép és jó lenne, "biztos valami különleges Cs függvéyn majd megoldja.." gondoltam magamban, "jah nem", mivel az alatta lévő függvényben meg működik. (KukacElottUtanNemAllPont függvénynél a valami.@valami vagy a valami@.valami / a valami.@.valamira is hibásnak veszi az emailt. Emberek ha én csesztem el valamit egy sima programozási tételben sajnálom hogy ilyen hülye vagyok, de ha más a baj akkor valaki indokolja meg légyszives mert ez nem hagy nyugodni.) Az időtöket előre is köszönöm.



2014. nov. 25. 20:50
 1/9 anonim ***** válasza:
51%

Mert != helyett == kell.


Első körben az i nulla. A while törzsében az első feltétel teljesül, a második meg nem, így azonnal ki is lép a ciklusból, pontosabban bele se lép.

2014. nov. 25. 20:58
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
51%
Annyit még helyesbítek, hogy ==-vel nem fog helyesen működni természetesen, csak a ciklus indulásához "kell". A feltételt fogalmazd át, az a lényeg.
2014. nov. 25. 20:59
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:
0%
A C hajlamos arra, hogy ha egyetlen hiba van egy sorban, akkor hajlamos rengeteg helyen hibákat írni, amiatt az egyetlen hiba miatt "végiggyűrűzik" a programon a sok hamis hibajelentés, ezért utáltam meg a C-t.
2014. nov. 25. 21:32
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

"A C hajlamos arra, hogy ha egyetlen hiba van egy sorban, akkor hajlamos rengeteg helyen hibákat írni, amiatt az egyetlen hiba miatt "végiggyűrűzik" a programon a sok hamis hibajelentés, ezért utáltam meg a C-t."

Itt sehol nem volt szó fordítási hibáról.

Ha meg van is, egyszerűen az elején kell kezdeni a hibakeresést.

Az, hogy ennyitől feladtad csak a te alkalmatlanságod mutatja.


"Mert != helyett == kell.


Első körben az i nulla. A while törzsében az első feltétel teljesül, a második meg nem, így azonnal ki is lép a ciklusból, pontosabban bele se lép."


Ez meg szimplán hülyeség.

A ciklus addig megy, amíg igaz az, hogy az i kisebb, mint a méret, és az olvasott karakter nem '.'.


Ha a bemenet mondjuk: "valami@freemail.hu",

akkor size = 18.

i 0-ról indul.

0 < 18 és 'v' != '.', tehát i-t növeljük.

1 < 18 és 'a' != '.', tehát i-t növeljük.

...

15 < 18 és '.' == '.', tehát kilépünk a ciklusból.


15 < 18, tehát igazat adunk vissza.


Nekem ez teljesen jónak tűnik.

Próbáld ki többféle bemenettel, lehet valahol máshol akad el.

2014. nov. 25. 22:34
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:

Nálam futtatva is jó.

Nem tudom nálad mi a gond.

2014. nov. 25. 22:44
Hasznos számodra ez a válasz?
 6/9 A kérdező kommentje:
Szóval ha jólértem aztmondjátok, hogy itt a whileciklusnál nem addig megyek amíg nem pont a karakter, hanem addig amíg az? vagy mígnem az? azthittem mígnem ciklus pascalból nem ragadt át máshova...
2014. nov. 26. 07:31
 7/9 A kérdező kommentje:
Nem azért de hiába írom át az emailcim!='.'-ot ==re nekem akk is így is úgy is igazat ad vissza:DD:D mind2 esetben valami@valamihu / valami@valami.hu
2014. nov. 26. 07:33
 8/9 A kérdező kommentje:
tehát mindig azt kapom hogy az email cim helyes, akár van benne pont akár nem átírva is / átíratlanul is:D Tetszik:D
2014. nov. 26. 07:36
 9/9 anonim ***** válasza:
Mégegyszer: a kód jó.
2014. nov. 26. 08:51
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!