Kezdőoldal » Számítástechnika » Programozás » Mi a hiba a programban? (c++)

Mi a hiba a programban? (c++)

Figyelt kérdés

#include <iostream>

#include <cstdlib>


int eredmeny (int tipp[4],int szam[4]);



int main()


{


int tipp[4];

int i=0;


int szamlalo=0;

int szam[4 ];


int b =1;


for (i=0;i<=4;i++)


{

b=rand() % 91;


int szam[i]=b;

}


for(szamlalo=0;szamlalo<=4;i++)


{

std::cout<<"Ird be!"<< std::endl;

std::cin>>tipp[szamlalo];


}

int lottoeredmeny= eredmeny(int tipp [4],int szam[4]);



std::cout<<"Az eredmeny="<< std::endl;

std::cout<<lottoeredmeny;

std::cout<<"talalat"<< std::endl;



return 0;

}



int eredmeny (int tipp[4],int szam[4])


{

int eredmeny=0;

int i;

for(i=1;i<=4;i++)

{

if(tipp[i]=szam[0])

{

eredmeny++;

}

if(tipp[i]=szam[1])

{

eredmeny++;

}

if(tipp[i]=szam[2])

{

eredmeny++;

}

if(tipp[i]=szam[3])

{

eredmeny++;

}

if(tipp[i]=szam[4])

{

eredmeny++;

}

}

return eredmeny;

}

hibaüzenet:24 variable-sized object `szam' may not be initialized

34 expected primary-expression before "int"

34 expected primary-expression before "int"



2013. nov. 9. 20:13
 1/8 anonim ***** válasza:

Kijavítottam. Most már nem jelez hibát.

Kijavítva így néz ki:

#include <iostream>

#include <cstdlib>


int eredmeny (int tipp[4],int szam[4]);


int main()


{


int tipp[4];

int i=0;


int szamlalo=0;

int szam[4 ];


int b =1;


for (i=0;i < 4;i++)


{

b=rand() % 91;


szam[i]=b;

}


for(szamlalo=0;szamlalo<=4;i++)


{

std::cout<<"Ird be!"<< std::endl;

std::cin>>tipp[szamlalo];


}

int lottoeredmeny= eredmeny(tipp, szam);


std::cout<<"Az eredmeny="<< std::endl;

std::cout<<lottoeredmeny;

std::cout<<"talalat"<< std::endl;


return 0;

}


int eredmeny (int tipp[4],int szam[4])


{

int eredmeny=0;

int i;

for(i=1;i<=4;i++)

{

if(tipp[i]=szam[0])

{

eredmeny++;

}

if(tipp[i]=szam[1])

{

eredmeny++;

}

if(tipp[i]=szam[2])

{

eredmeny++;

}

if(tipp[i]=szam[3])

{

eredmeny++;

}

if(tipp[i]=szam[4])

{

eredmeny++;

}

}

return eredmeny;

}

2013. nov. 9. 20:20
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
A = operátor értékadást jelent. Ha if-be rakod és kiértékelni szereznéd akkor ==.
2013. nov. 9. 20:23
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

A hibák a következők voltak:

1) int szam[i]=b; -> mert a szam változó már deklarálva van, és csak a deklaráláskor kell megadni az int kulcsszót.

2) int lottoeredmeny= eredmeny(int tipp [4],int szam[4]);

Ebben két hiba is van:

i. paraméterként nem kell megadni az int kulcsszót.

ii. Tömböt nem így kell átadni. Te itt átadtad a két tömb negyedik elemét, de nem a tömböt, de a függvény ként tömböt vár.

3)for(szamlalo=0;szamlalo<=4;i++)

|

-> a tömböknek négy eleme van, nulladik elem, első elem, második elem és harmadik elem.

2013. nov. 9. 20:25
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Ja és az iffekben mindenhová az "=" helyett "=="-t tegyél.

Ahogy én átírtam sem jelez már hibát(Javában azt jelezne), mert az if-en belül is lehet értékadás, de "=" nem azt fogja visszatéríteni amit akarsz.

2013. nov. 9. 20:27
Hasznos számodra ez a válasz?
 5/8 SimkoL ***** válasza:
Most ríjom el magam, de szerintem nem csak én :)
2013. nov. 9. 20:53
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

@SimkoL: I know that feel bro! :D Nem vagy egyedül. :D


A korábbiakhoz még egy kiegészítés:

Az eredmeny függvényedben a ciklusváltozót 1-ről indítod, pedig szerintem 0-ról kéne, a korábbiakban is sűrűn használtad a tömb első (nulladik) elemét, szerintem itt is kéne. :)


Mivel most már ki vannak javítva a hibák, engedj meg egy javaslatot: ismerkedj meg az ÉS operátorral, nagy hasznát fogod venni már ebben a programban is. :)

2013. nov. 9. 23:37
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

Jesszusf#szom.

Csak tudnám, aki így programozik, az hol tanulta...

2013. nov. 10. 09:11
Hasznos számodra ez a válasz?
 8/8 zsomkovacs ***** válasza:

További problémák: a for ciklusban az (int i=0; i<=4; i++) JÓ. Ez egy lottóprogram, ahol 90 számból ÖTÖT húznak. A tömböknek viszont 5 eleműeknek kéne lennie. Ráadásul most a program kihúzhatja ötször mondjuk a 42-t, és ha megtippeltem, egyből ötösöm van. Ráadásul ugyanazt a számot meg is játszhatom többször egy szelvényen...


Utóbbi kettőtől ugyan lefordul a program, de hibásan fog működni.

2013. nov. 10. 09:23
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!