Kezdőoldal » Számítástechnika » Programozás » Mi nem jó ebben? (c )

Mi nem jó ebben? (c )

Figyelt kérdés

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?


2011. jún. 20. 21:07
1 2
 1/11 anonim ***** válasza:

int l[100] <- ez így helytelen.

és inkább q++, és qq++ legyen.

2011. jún. 20. 21:23
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:

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

2011. jún. 20. 21:25
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
mármint abban a formában ahogy leírtad nincs visszatérési értk
2011. jún. 20. 21:25
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:

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!!

2011. jún. 20. 21:32
 5/11 A kérdező kommentje:

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!!:(:(

2011. jún. 20. 21:35
 6/11 anonim ***** válasza:
kicsit félrenéztem, én c#-ba gondolkodtam, nem c-be.
2011. jún. 20. 21:41
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:

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.

2011. jún. 21. 07:31
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:

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!

2011. jún. 21. 09:56
 9/11 A kérdező kommentje:

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??

2011. jún. 21. 10:00
 10/11 anonim ***** válasza:

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?

2011. jún. 21. 10:35
Hasznos számodra ez a válasz?
1 2

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

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!