Kezdőoldal » Számítástechnika » Programozás » Hogyan kéne ezt a függvényt...

Hogyan kéne ezt a függvényt megcsinálni C-ben? (lent)

Figyelt kérdés

Készítenem kell egy függvényt kereso néven, ami megkapja lakas típusú adatok egy tömbjét (a mérettel együtt), és visszatér az első olyan adat indexével, amelyikben a jelenlegi lakók száma 2 és 5 között van (a határokat is beleértve). Ha nincs ilyen, akkor a függvény -1-gyel térjen vissza.


A struktúra definíciója:


struct lakas

{

unsigned int hazszam;

int epites; // építés éve

unsigned int lakok; // jelenlegi lakók száma

unsigned int szobak; // szobák száma

};


A függvényt meghívó kód:


printf("%d\n", kereso(tomb, 9));


Ennyit tudunk a teljes program kódjából. Igazából az a fő baj, hogy nem tudom egy tömbbe berakni a struktúra változóit. Próbáltam tömb nélkül megoldani, de úgy nem ismeri fel a struktúrát és amúgyse stimmelne a kiiratás.



2019. nov. 1. 20:16
1 2
 1/11 anonim válasza:
Probald ki a photomath appot.
2019. nov. 1. 20:39
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Hogy jön ide egy matematikai műveleteket megoldó app? Azért kipróbáltam, de természetesen nem tudja a C nyelvet.
2019. nov. 1. 20:50
 3/11 anonim ***** válasza:

"Igazából az a fő baj, hogy nem tudom egy tömbbe berakni a struktúra változóit."


Miért akarnád a struktúra változóit egy tömbbe rakni? A struktúrát kell a tömbbe raknod, nem annak a változóit:


[link]

2019. nov. 1. 21:02
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
Köszi, megpróbálom ez alapján megoldani. A változók neveit nem én találtam ki, hanem a feladat írója és én azokat nem tudom módosítani.
2019. nov. 1. 21:09
 5/11 A kérdező kommentje:

Megcsináltam a függvényt.


[link]


Biztos lehetne rövidebben is. Lefut, de mindenhol az else ág értékét adja vissza, jelen esetben a -1-et. Akkor is, ha csak az utolsónál van else ág.

2019. nov. 1. 22:15
 6/11 anonim ***** válasza:
mi a szaar eeez
2019. nov. 2. 00:43
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:

Kicsit jobban olvasd át a ciklusokat. Lényegében csak annyit felejtettél el, hogy mire való a ciklus. A ciklusokkal kollekciókon tudsz végigmenni. Ezt úgy, hogy használod az index változód - jelen esetben az i -, hogy hivatkozz a kollekció egy elemére. A kollekciód pedig most egy tömb volt.


Indexelés 0-tól indul. Tehát, ha 10 elemű a tömböd, annak az első elemét a 0. index jelöli, te a kódod végén kicímeztél a tömbből.


elem: 1 2 3 4 5

index 0 1 2 3 4


Javaslom a hibaüzenetek tanulmányozását még. Kezdőként legtöbbször a tömbből való kicímzés, null referenciára való hivatkozás és az elírt változónevek,

útvonalak, stb fordulhatnak elő. C-ben nem tudom pontosan, hogy a fordító ezeket minek nevezi, de ezért tanulmányozd őket. :) Rontsd el szándékosan a működő kódot és nézd meg milyen üzenetet kapsz. Következő alkalomkor már tudni fogod pontosan a hiba okát.


[link]

2019. nov. 2. 00:44
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:

Köszi, a hibaüzeneteket szoktam nézegetni és rájuk keresni. Bemásoltam a kódod, de továbbra is -1-et ad mindenhol (sikerült 0-t is elérnem, de azzal nem vagyok sokkal előrébb).


[link]

2019. nov. 2. 01:16
 9/11 anonim ***** válasza:
79%
Önállóság, önállóság, önállóság.
2019. nov. 2. 08:09
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:

"Bemásoltam a kódod"


Csak úgy? :D Nálam működik, visszaadja helyesen az indexeket.


Kezdjük azzal, hogy te a képen mindenhol 9 lakás adatot adsz meg a 10 helyett. Ha csak bemásoltad a kódot, akkor már eleve helytelen, mert meg kell változtatni a méretét a tömbnek (beleértve a ciklusok feltételét is).


Nem tudom milyen fejlesztőkörnyezetet használsz, de ha nem egy sima szövegszerkesztő, akkor debugolj. Ez is egy fontos dolog. Tegyél breakpointokat (VisualStudio F9) a kód különböző soraiba és nézd meg, hogy a változóidnak milyen értéke van. Nézd meg, hogy az adott feltételnek teljesülnie kell-e, és ha nem, akkor miért nem teljesül, stb.

2019. nov. 2. 11:15
Hasznos számodra ez a válasz?
1 2

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!