Miért nem működik ez a (C++) kód?
int ind;
int i=1;
while(i<=n && (r[i]<=2*r[1] )){
i=i+1;
}
bool van=i<=n;
if(bool van=true){
int ind=i;
}
Itt az egész kód, ha valakit érdekel:
Egy részvényes feladat n=napok száma, r[i]=részvények. Az a kérdés, hogy "Volt-e olyan nap, hogy a részvény értéke több, mint kétszerese volt az induló (első napi) értéknek? Ha igen,
adjuk meg az első ilyen napnak a sorszámát."
#include <iostream>
#define MAX_SIZE 100
using namespace std;
int main()
{
bool vege=false;
while(!vege){
int n;
int r[MAX_SIZE];
bool hiba;
do{
cout<<"Adja meg az adatok számát:"<<endl;
cin>>n;
hiba=n<2 or n>100;
if(hiba){
cout<<"A megadott adat nem felel meg a követelményeknek!"<<endl;
}
}while(hiba);
cout<<"Adja meg az adatokat:"<<endl;
for (int i=0;i<n; i++){
do{
cout<<i+1<<". adat:";
cin>>r[i];
hiba=r[i]>1000 or r[i]<0;
if(hiba){
cout<<"A megadott adat nem felel meg a követelményeknek, adja meg az adatot újra!:"<<endl;
}
} while(hiba);
}
int ind;
int i=1;
while(i<=n && (r[i]<=2*r[1] )){
i=i+1;
}
bool van=i<=n;
if(bool van=true){
int ind=i;
}
if(bool van=true){
cout<<"Volt megfelelõ, a "<<ind<<". nap"<<endl;
} else cout<<"Nem volt megfelelõ"<<endl;
//cout << "Mélypont indexe:"<<mpind+1 <<"a kötvényérték: "<<mpertek<<", "<<nagyobbak+1 <<"nála nagyobb érték van elõtte" << endl;
char ch;
cout<<"Újrafuttatáshoz nyomja meg az F-et!";
cout<<"Kilépéshez nyomjon meg egy tetszőleges billentyűt!"; cin>>ch;
vege= (ch!='F' && ch!='f');
}
}





bool van=i<=n;
Itt definiálsz egy bool változót, ami a kilépési feltétel (true, ha elértél az adatok végéig), majd:
if(bool van=true){
Itt definiálsz egy _másik_ változót, ami az "if" ágra lokális, felülírva az előzőt, és egyből beállítod true értékre, ami rögtön ki is lépteti a ciklust.
A 2. esetben felesleges kiírni, hogy "bool", hiszen a változó már létezik (a bool újbóli megadása újat csinál), továbbá az egyenlőség tesztelése "==", nem pedig "=" (utóbbi az értékadás, és igen, az értékadás megtörténik, függetlenül attól, hogy egy feltétel vizsgálatánál csinálod).
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!