C++ tömb számok vizsgálata és eldöntése lehet ilyet csinálni?
Sziasztok!
az lenne a feladatom hogy egy számot megállapítsak hogy benne van e a tömbe és írassam ki hogy van-e benne vagy nincs noh idáig eljutottam(kód lentebb) csak itt minden indexet megvizsgál hogy lehet azt megcsinálni hogy ne minden indexet vizsgáljon át hanem az egész tömböt és utána fusson le a többi kód?
kód:
bool van-e= false;
for (a=0; a<10; a++)
if (szam==tomb[a])
bool = true;
if(bool == true)
cout << "benne van a szám ";
else
cout << "nincs benne a szám";
Gyakorlatilag a keresés tételét valósítod meg. Még annyit lehetne módosítani, hogy ha megtalálta akkor break; hiszen nem kell tovább vizsgálni.
Viszont nem értem mit akarsz a tömbön vizsgálni. Azok csak egymás utáni számok. Viszont ezt a kódot kiteheted egy külön függvénybe.
egészet rosszul mondtam sorry :D nos azt a számot kell keresnem ami a tömben nincs benne és akkor a kód is másképp lesz kód:
bool van-e= false;
for (a=0; a<10; a++)
if (szam!=tomb[a])
bool = true;
if(bool == false)
cout << "benne van a szám ";
else
cout << "nincs benne a szám";
"if(bool == true)"
Ehhez külön gratulálok.
Köszi a segítséget ha hazaérek megprobálom segéd tömbbel azt csak rájövök hogy kell :)
#5 mi a bajod azzal? remélem azért észrevetted hogy nem rég kezdtem a programozást :) és szerinted hogy kéne írni?
bool van-e= false;
for (a=0; a<10; a++)
if (szam!=tomb[a])
bool = true; //a bool a változód típusa, nem a neve! A nevét kell itt megadni bal operandusként
if(bool == false) //szintén. A változódat vizsgálod, nem a típust. (Zárójelben jegyezném meg, hogy logikai változónál inkább negálni "illik". Tehát:
!van-e
van-e == false
helyett)
cout << "benne van a szám ";
else
cout << "nincs benne a szám";
Az eredeti megoldásod a jó, annyival egészítsd ki, hogy ha megvan, akkor lépj ki a for ciklusból(nem értek c++hoz, de sok nyelvben egy break épp ezt csinálja, nézz utána, hogy c++ ban mit használnak erre).
A második megoldásod azért nem jó, mert végigmegy az összes elemen, mindegyiket vizsgálja, és az éppen aktuális szám alapján állítja be a "van-e" változódat(elég kretén változónév egyébként, nézz utána a szabványoknak, hosszú távon jobban jársz), tehát ha az utolsó vizsgált elem ugyanaz, mint a "szam", csak akkor fogja azt csinálni, amit akarsz, minden más esetben rosszat fog kiírni.
Az if(bool==true) pedig azért rossz, mert a bool egy típus, te az if(van-e == true) ra gondoltál(de valóban érdemesebb az if(van-e) -t használni).
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!