Kezdőoldal » Közoktatás, tanfolyamok » Házifeladat kérdések » C programozásban esetleg vki...

C programozásban esetleg vki segíteni?

Figyelt kérdés

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


2019. okt. 9. 17:16
 1/4 anonim ***** válasza:
65%

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.

2019. okt. 9. 17:38
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
Köszönöm a segitséget, egyből sikerult
2019. okt. 9. 17:41
 3/4 anonim ***** válasza:

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?

2019. okt. 9. 17:48
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:
Ui.: Tárgytalan, megelőztek.
2019. okt. 9. 17:50
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!