Kezdőoldal » Számítástechnika » Programozás » C-ben vissza lehet adni...

C-ben vissza lehet adni negatív számot return-al?

Figyelt kérdés

Az a feladat hogy ha a feltétel teljesül a függvény adjon vissza -1-et de nálam olyankor random számokat ad vissza. Ilyen formában is próbáltam:

int main() {

int retur = -1;

return(retur);


}

Ugyanaz:(


2020. okt. 8. 10:06
 1/7 anonim ***** válasza:
100%

"C-ben vissza lehet adni negatív számot return-al?"

Igen, ha ELŐJELES (unsigned) egészt (short, int, long int, long long int) vagy lebegőpontosat (float, double, long double) használsz visszatérési típusként.


"Az a feladat hogy ha a feltétel teljesül a függvény adjon vissza -1-et"

Na most a közölt forráskóddal több probléma is van:

1. Ne a main függvényből add vissza az értéket (a feladat erre nem tér ki, de ez elég nyílvánvaló), írj erre egy külön függvényt, amit a main függvényben meghívsz és kiíratod a meghívott függvény visszaadott értékét.

2. A feladat előír valamilyen feltételt - ez nincs meg.

3. "random számokat ad vissza" - ezt a fenti forráskódból hogyan deríted ki?

2020. okt. 8. 10:38
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

main visszatérését a OS értelmezi:

- 0 rendben lefutott

- minden más ami nem 0, az abnormális futást jelent az OS számára.


Itt ne randomot adj vissza. De programon belül (azaz main-en kívül), bárhol adhatsz vissza randomot.

2020. okt. 8. 11:03
Hasznos számodra ez a válasz?
 3/7 tabaki ***** válasza:

Éppen a minap küzdött valaki hasonló értelmezési problémákkal, tanulságos lehet elolvasni:

https://www.gyakorikerdesek.hu/szamitastechnika__programozas..


Gondolom, a fenti kódod nem a feladatnak akar megfelelni, pusztán a main() értékének mínusz egyre állításával kísérletezik. Attól függetlenül, hogy túlbonyolítottad, szerintem nem eredményezhet random számokat, a -1 szabályos visszatérési érték. Jó lenne sejteni, hogy pontosan mit csinálsz.

2020. okt. 8. 11:25
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
100%

Illetve még egy dolog (#1-es lennék): a topiknyitó hozzászólásban a return így szerepel:

return(retur);

ez így helytelen.


A return nem függvény, nem eljárás, hanem utasítás - szóval helyesen:

return retur;

bővebben lásd a jelenleg aktuális (C18) szabvány ( [link] [link] ) 6.8.6.4-es fejezetét (111. oldal), vagy:

* [link]

2020. okt. 8. 12:46
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Ezt próbáld ki, és próbáld érteni, mi micsoda:


#include <stdio.h>


int f() {

return -1;

}


int main() {

printf( "%d\n", f() );

}

2020. okt. 8. 15:41
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
C-ben mindent lehet.
2020. okt. 8. 17:31
Hasznos számodra ez a válasz?
 7/7 tabaki ***** válasza:
63%

#4: „return(retur);

ez így helytelen.”


...És nem azért, mintha a fordító ne fogadná el, hanem azért, mert ránézésre, megtévesztő módon, függvényformát mutat, amit két irányban is tovább lehet gondolni. Az egyik, hogy tényleg függvénynek gondolod, holott mindössze arról van szó, hogy a fordító egyszerűen nem veszi figyelembe a fölöslegesen odapötyögött zárójeleket. Próbáld ki így is:

return((((((((((retur))))))))));

A másik lehetőség, hogy valójában egyáltalán nem érted, mi mire való, csak vak tyúk is talál szemet alapon keresgélsz olyan sorokat, amelyeket nem dob vissza a fordító. Ez már rövid távon sem fog működni, a programozás a gondolkodó emberek sportja. Én ugyan biztosra veszem, hogy magasabb szinten hasznosan megnyilvánulhat valami „programozói ösztön”, de itt még ne akarj erre hagyatkozni. Tanuld meg, ami megtanulni való.

2020. okt. 8. 17:43
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!