Informatică, întrebare adresată de Darlezior, 9 ani în urmă

Ce este gresit in acest cod?
#include

using namespace std;
int n,nr_bautura,_bani,i,j;
string _altceva;
int main()
{enum fel_bautura {pepsi,cola,sprite,fanta};
enum fel_mancare {ciorba,platou_rece,peste,cartofi_prajiti,fasole};
enum fel_peste {ton,crap,salau,stiuca,stavrid,scrumbie,biban};
cout<<"Bautura sau mancare?\n";
cin>>n;
if (n==1)
{cout<<"Ce bautura doriti?\n Pepsi?\n Sprite?\n Cola?\n Fanta?\n";
cin>>nr_bautura;
switch (nr_bautura)
{case pepsi: i=2;
break;
case sprite: i=2.5;
break;
case cola: i=2;
break;
case fanta: i=3;
break;
default: cout<<"Invalid";}
cout< cout<<"Mai doriti si mancare?\n";
cin>>_altceva;
if (_altceva=="nu")
{cout<<"Introduceti suma de bani necesara pentru a achita bautura\n";
cin>>_bani;
if (_bani>=i) cout<<"Rest:"<<_bani-i<<" lei\n Va multumim\n";
else {if (i-_bani==1) cout<<"Va mai este necesar "< else cout<<"Va mai sunt necesari "< else if (_altceva=="da"&&n==2)
{cout<<"Ce mancare doriti?\n Ciorba?\nPlatou Rece?\nPeste?\nCartofi Prajiti?\nFasole?\n";
cin>>fel_mancare;
switch (fel_mancare)
{case ciorba: j=13;
break;
case platou_rece: j=14.5;
break;
case peste:
cin>>fel_peste;
switch (fel_peste)
{case ton: j=80;
break;
case crap: j=40;
break;
case salau: j=90;
break;
case stiuca: j=50;
break;
case stavrid: j=100;
break;
case scrumbie: j=60;
break;
case biban: j=40;
break;}
break;
case cartofi_prajiti: j=15;
break;
case fasole: j=21;
break;}
cout<<"Introduceti suma de bani necesara pentru a achita produsele\n";
cin>>_bani;
if (_bani>=i+j) cout<<"Rest:"<<_bani-i-j<<" lei\n Va multumim\n";
else {if (j-i-_bani==1) cout<<"Va mai este necesar "< else cout<<"Va mai sunt necesari "< return 0;
}

Răspunsuri la întrebare

Răspuns de express
2
Salut ! Ti-am rescris programul introducandu-ti inca doua variabile int :nr_mancare si nr_peste pe care le omisesei...programul iti functioneaza...dar am pierdut o jumatate de ora sa-l inteleg. Ti l-am ordonat si imbricat...sper sa-l folosesti asa si eventual sa-l parcurgi pas cu pas pentru a-l intelege. Succes!
#include <bits/stdc++.h>
using namespace std;
int n, nr_bautura, nr_mancare, nr_peste, _bani, i, j;
string _altceva;
int main()
{
    enum fel_bautura {pepsi,cola,sprite,fanta};
    enum fel_mancare {ciorba,platou_rece,peste,cartofi_prajiti,fasole};
    enum fel_peste {ton,crap,salau,stiuca,stavrid,scrumbie,biban};
    cout<<"Bautura sau mancare?\n";
    cin>>n;
    if (n==1)
    {
        cout<<"Ce bautura doriti?\n Pepsi?\n Sprite?\n Cola?\n Fanta?\n";
        cin>>nr_bautura;
        switch (nr_bautura)
        {
            case pepsi: i=2; break;
            case sprite: i=2.5; break;
            case cola: i=2; break;
            case fanta: i=3; break;
            default: cout<<"Invalid";
        }
        cout<<"Mai doriti si mancare?\n";
        cin>>_altceva;
        if(_altceva=="nu")
        {
            cout<<"Introduceti suma de bani necesara pentru a achita bautura\n";
            cin>>_bani;
            if (_bani>=i) cout<<"Rest:"<<_bani-i<<" lei\n Va multumim\n";
                else
                {
                    if (i-_bani==1) cout<<"Va mai este necesar ";
                        else cout<<"Va mai sunt necesari ";
                }
        } else if (_altceva=="da"&&n==2)
            {
                cout<<"Ce mancare doriti?\n Ciorba?\nPlatou Rece?\nPeste?\nCartofi Prajiti?\nFasole?\n" ;;
                cin >> nr_mancare;
                switch (nr_mancare)
                {
                    case ciorba: j=13; break;
                    case platou_rece: j=14.5; break;
                    case peste: cin >> nr_peste;
                     switch (nr_peste)
                        {
                            case ton: j=80; break;
                            case crap: j=40; break;
                            case salau: j=90; break;
                            case stiuca: j=50; break;
                            case stavrid: j=100; break;
                            case scrumbie: j=60; break;
                            case biban: j=40; break;
                        } break;
                    case cartofi_prajiti: j=15; break;
                    case fasole: j=21; break;
                }
                cout<<"Introduceti suma de bani necesara pentru a achita produsele\n";
                cin>>_bani;
                if (_bani>=i+j) cout<<"Rest:"<<_bani-i-j<<" lei\n Va multumim\n";
                    else
                    {
                        if (j-i-_bani==1) cout<<"Va mai este necesar ";
                                     else cout<<"Va mai sunt necesari ";
                    }
            }
        }
        return 0;
}

Alte întrebări interesante