C programozásban esetleg vki segíteni?
A feladat egy C-s FÜGGVÉNY elkészítése. Az ellenőrző a feladatleírás után látható kódba illeszti azt bele.
A programban adott egy struktúra, ami egy bolt adatait tárolja:
nyitvatartas vége (óra)
alkalmazottak szama
alapterület
A programban van kettő globális változó ilyen típussal ('var1' és 'bolt2'), valamint egy egész típusú globális változó 'valasztas' néven.
A FELADATOK:
A függvény neve legyen 'megjelenito'
A függvény vizsgálja meg a 'valasztas' változó értékét. Amennyiben ez 1, úgy a 'var1' változó adatait kell megjeleníteni, ha 2, akkor pedig a 'bolt2' adatait.
A megjelenítés mindkét esetben egy sor legyen.
A kód:
#include <stdio.h>
struct bolt
{
int zar;
int dolgozok;
int alapterulet;
};
struct bolt var1;
struct bolt bolt2;
int valasztas;
// IDE KERÜL MAJD A MEGÍRANDÓ FÜGGVÉNY
int main()
{
scanf("%d %d %d", &var1.zar, &var1.dolgozok, &var1.alapterulet);
scanf("%d %d %d", &bolt2.zar, &bolt2.dolgozok, &bolt2.alapterulet);
valasztas=1;
megjelenito();
valasztas=2;
megjelenito();
return 0;
}
én erre jutottam:
int megjelenito()
{
struct var1;
struct bolt2;
int valasztas;
scanf("%d",&valasztas);
if (valasztas==1)
printf("%d %d %d\n",var1.zar,var1.dolgozok,var1.alapterulet);
else if (valasztas==0)
printf("%d %d %d\n",bolt2.zar,bolt2.dolgozok,bolt2.alapterulet);
return 0;
}
de kétszer fut le az if függvény, két számot kér be és nem értem miért
Egyrészt nem kell deklarálni a függvényen belül a három változót, már az megtörtént a megadott kódban.
scanf-re sincs szükség, nem volt feladat bekérni a valasztas értékét. Azért fut le kétszer a bekérés mert kétszer hívja meg a megjlenito() függvényt a megadott kód. Olvasd végig a megadott kódot is, hogy mit csinál.
A feladatban az is van, hogy ha a valasztas==2, akkor írod ki a bolt2 adatait, de te a valasztas==0 esetben teszed.
Nem az if() fut le kétszer, hanem kétszer futtatják le a megjelenito() függvényedet:
valasztas=1;
megjelenito();
valasztas=2;
megjelenito();
Másfelől a megjelenítő függvényed több pontból vérzik:
* Miért hozod létre a globális változókat lokálisan is, a fgv-en belül?
* Miért kérsz be adatokat? A feladat az volt, hogy a függvényed vizsgáljon, nem volt feladat, hogy kérjen is be valamit. Eltérsz a specifikációtól!
* Az if else ágában azt kellett volna megvizsgálnod, hogy a valasztas értéke "2"-e.
* Miért pont int-t választottál a függvényednek? Nem mondom, hogy hiba, mert nem feltétlenül az, de kíváncsi lennék rá, hogy meg tudod-e indokolni?
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!