Kezdőoldal » Számítástechnika » Programozás » Miért nem teljesül a másik...

Miért nem teljesül a másik állítás? C++

Figyelt kérdés

int main()


{

string valasztas;

cout << "Adja meg az elso szamot!" << endl;

cin >> elsoszam;

cout << "Adja meg a masodik szamot!" << endl;

cin >> masodikszam;

cout << "Valassza ki az alabbiakbol, mit szeretne tenni" << endl << "szorzas" << endl << "osztas" << endl;

cin >> valasztas;

do

{

cout << "Ilyen opcio nincs" << endl;

cin >> valasztas;

break;

{


}

}

while (!(valasztas != "szorzas") || (valasztas != "osztas")) ;

if (valasztas == "szorzas")

{

int szorzat;

szorzat = elsoszam*masodikszam;

cout << "Az " << a << "es " << b << " szorzata egyenlo:" << endl;

cout << elsoszam << szorzas << masodikszam << egyenlo << szorzat << endl;

}



if(valasztas == "osztas")

{

int osztas;

#define osztasjel "/"

osztas = elsoszam/masodikszam;

cout << "Az " << a << "es" << b<< "hanydosa egyenlo:" << endl;

cout << elsoszam << osztasjel << masodikszam << egyenlo << osztas << endl;

}



}



Ez a program, és ha beírom a szorzást, tökéltesen megy...de ha az osztás szót írom be, azt írja nincs ilyen opció ahogy megadtam neki. Ez miért nem működik ez az OR operátor itt? Valaki segíteni tud, vagy más megoldási ötlete van?


2016. febr. 6. 13:30
 1/7 anonim ***** válasza:

Ez alapján MINDIG ki fogja írni, hogy nincs ilyen opció:


cin >> valasztas;

do

{

cout << "Ilyen opcio nincs" << endl;

2016. febr. 6. 14:08
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
És akkor hogyan lehetne megoldani, hogy az összes működjön, és ne csak a szorzás? mert az működik...és csak annyit találtam, hogy az OR operátorral van valami
2016. febr. 6. 14:41
 3/7 anonim ***** válasza:

cin >> valasztas;

while (valasztas != szorzas && valasztas != osztas) {

cout << "ilyen opcio nincs\n";

cin >> valasztas;

}


...

2016. febr. 6. 15:00
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
Köszönöm, működik! :) csak mellékesen, do-while szerkezettel is megoldható?
2016. febr. 6. 16:15
 5/7 anonim ***** válasza:
Mindhárommal megoldható.
2016. febr. 6. 16:28
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

Megoldható (mellesleg az előzőben véletlen nem tettem idézőjelbe a stringet, de gondolom feltűnt):


bool input_hiba = true;

do {

__cout << "Valassza ki az alabbiakbol, mit szeretne tenni" << endl << "szorzas" << endl << "osztas" << endl;

__cin >> valasztas;

__input_hiba = (valasztas != "szorzas") && (valasztas != "osztas");

__if (input_hiba) {

____cout << "Ilyen opcio nincs" << endl;

__}

}

while (input_hiba);


Mellesleg azt javasolnám, hogy szokd meg az elöltesztelő ciklust (ha a feladat külön nem kéri a másikat), mert általában olvashatóbb. (nem szentírás, de inkább ezt szokták szeretni)

2016. febr. 6. 20:51
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
Minden megoldható if+goto-val
2018. jan. 7. 19:47
Hasznos számodra ez a válasz?

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

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!