Hol a hiba? (C++) Akár igaz akár hamis a feltétel, mégis mindketőt elvégzi, mit kell kijavitsak hogy ha nem tartalmazza akkár csak úrja ki amit megadtam a feltételbe?
for(int i=0;i<n;i++)
cin>>a[i];
cout<<"Add meg hogy melyik elemet toroljuk."<<endl;
cin>>k;
for(int i=0;i<n;i++)
if(a[i]!=k){
cout<<"Nincs ilyen szam a tombe!"<<endl;
break;
}
else {
for(int i=0;i<n;i++) {
if(a[i]==k)
for(int j=i;j<n;j++)
a[j]=a[j+1];
}
}
for(int i=0;i<n-1;i++)
cout<<a[i]<<" ";
return 0;
Nem végzi el mindkettőt, hanem végigmegy az összes tömbelemen, és valamelyik megegyezik k-val, valamelyik meg nem, és ha akár a 0. elem nem egyezik meg, akkor már kiírja, hogy nincs ilyen szám a tömbben, pedig ez nem igaz.
Ez helyett ebben az esetben (hogy a tömbben többször is előfordulhat ugyan az a szám) a kereső ciklusod előtt felveszel egy változót: bool vanK = false; és a cikluson belül akkor billented át igazra ( vanK= true; ), ha talált ilyen k elemet. A ciklus után meg 1 db if-fel megvizsgálod, hogy volt-e k
if (vanK != 1) { cout << "nincs ilyen szam" .....}
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!