Kezdőoldal » Számítástechnika » Programozás » Miért nem működik ez a (C++) kód?

Miért nem működik ez a (C++) kód?

Figyelt kérdés

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;

}



[link]


2021. dec. 22. 01:55
 1/2 A kérdező kommentje:

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');


}

}

2021. dec. 22. 01:59
 2/2 anonim ***** válasza:
83%

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).

2021. dec. 22. 02:11
Hasznos számodra ez a válasz?

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

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!