Mi a hiba a programban? (c++)
#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"
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;
}
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.
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.
@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. :)
Jesszusf#szom.
Csak tudnám, aki így programozik, az hol tanulta...
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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!