Mi nem jó ebben? (c )
int ertekelo(int l[100], int i , int q , int qq)
{
q=0;
qq=0;
for(i=0;i<100;i++)
{
if(l[i]==1)
{
++q;
}
if(l[i]==2)
{
++qq;
}
}
}
ez egy 100 elemű tömb elemeit nézi végig és ha 1-s akkor a q-t ha 2-est érzékel akkor a qq-t lépteti de nem működik mindig 32 és 8-at ad ki még akkor is ha csak 1 és 2 van a tömbben!!
miért?
int l[100] <- ez így helytelen.
és inkább q++, és qq++ legyen.
int ertekelo(int l[100], int i , int q , int qq)
ez így függvény, így nincs is visszatérési érték. ha eljárás akarna lenni, akkor voidot kéne írni
hát felakarom használni a main() függben és tényleg nem akarok visszatérési értéket adni neki,de ha hívni akarom akkor nem így kell pl.:
int c;
c=ertekelo...
na és azért írtam int-et és nem void-ot mert itt int-el hívom vagy az tökmindegy??
nem tudok valami sokat mert csak kezdő(nagyon)vagyok és amiket láttam a neten!!
Hát ez lett belőle:
int ertekelo(int l[32], int i , int q , int qq)
{
for(i=0;i<32;i++)
{
if(l[i]==1)
{
++q;
}
}
for(i=0;i<32;i++)
{
if(l[i]==2)
{
++qq;
}
}
a 100-at vissszavittem 32-re mert a 100 túl sok :)
és ha az if-ek külon for-ban vannak akkor megy csak így többet kell gépelnem!!:(:(
21:23 Nem helytelen, és ++q jobb gyakorlat, mint a q++.
Legyen void a visszatérési érték int helyett, mert így most azt várja, hogy intet adsz vissza, közben meg nem is (ami nálad nem okoz hibát, ha nem akarod felhasználni, de jobb nem megszokni az ilyesmit).
Amúgy a q és a qq értéke visszatérés után elvész, azt ugye tudod? Tehát ott a függvényben kell felhasználni őket, vagy referenciaként átadni.
Meg még le tudnék írni jópár dolgot, de elvileg mindkettőnek ugyanazt kéne adnia a for után.
aha a függvényen kívül kiakartam íratni a q,qq-t de nem volt jó ezért betettem a függvénybe és úgy már ok-s
++q azt tudom hogy jobb mert néha a q++ lekésik(nem tudom másként leírni :) )
köszönöm szépen mindenkinek és annak a referenciás dolognak utána nézek!
kipróbáltam hogy az int ertekelo-t átírtam void ertekelo-ra,de amikor a main() fugg.ben hívtam akkor hibát észlelt.
lehet hogy azért mert int el hívtam?
ha igen a void-ot hogyan kell hívni??
Ha MINDENHOL átírtad void-ra (mert ugye szokás a függvényeket előre "bejelenteni", deklarálni), akkor a használata ilyen: fuggveny(...); Ha olyat írtál, hogy int x = fuggveny(...);, akkor nem fog voiddal menni, akkor eddig sem kellett volna futnia, mert nincs return a függvényben, és mintha mondtad is volna, hogy nem így hívod.
Mi a hibaüzenet?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!