Witam! Potrzebuje pomocy odnośnie programu zamieszczonego poniżej. Mam dwa problemy:

  • Po pierwsze, po 'case' jest problem, ponieważ program wraca do menu, ale nie czyści wyniku wykonanego działania. Próbowałem rożnych opcji, ale gdy doszedłem do etapu gdy czyści konsole całą i wyświetla tylko menu to robi to od razu i nie czeka na żaden przycisk.
  • Po drugie, 'case3' i 'case4' w ogóle nie działa i nie mam pojęcia czemu.

Bardzo proszę o pomoc i z góry dziękuje.

#include <iostream>
#include <cmath>
#include <cstdlib>
#include <unistd.h>
#include <stdio.h>

using namespace std;

int z, w, wyb, wybor;

long double x, y, bb, bw, a, b, c, d;

int main()
{

  //  cout<<"*******************MENU********************"<<endl;
   // cout<<"1.Obicz blad wzgledny"<<endl;
   // cout<<"2.Oblicz blad bezwzgledny"<<endl;
   // cout<<"3.Oblicz wartosc przyblizona"<<endl;
   // cout<<"4.Oblicz wartosc dokladna"<<endl;
   // cout<<"5.Wyjscie z programu"<<endl;
   // cout<<"Wybieram : ";
   // cin>>g;
for(;;)
{
    cout<<"*******************MENU********************"<<endl;
    cout<<"1.Obicz blad wzgledny"<<endl;
    cout<<"2.Oblicz blad bezwzgledny"<<endl;
    cout<<"3.Oblicz wartosc przyblizona"<<endl;
    cout<<"4.Oblicz wartosc dokladna"<<endl;
    cout<<"5.Wyjscie z programu"<<endl;
    cout<<"Wybieram : ";
    cin>>wybor;
    system("cls");

     switch (wybor)
    {
       case 1:
           cout << "Podaj wartosc dokladna: " ;
           cin >> x ;
           cout << "Podaj wartosc przyblizona: " ;
           cin >> y ;
           bw=(fabs(x-y)/x)*100 ;
           cout << "- Blad wzgledny wynosi: " << bw << "%" << endl ;
           break;

       case 2:
            cout << "Podaj wartosc dokladna: " ;
            cin >> x ;
            cout << "Podaj wartosc przyblizona: " ;
            cin >> y ;
            bb=fabs(x-y) ;
            cout << "- Blad bezwzgledny wynosi: " << bb << endl ;
            break;
       case 3:
           cout << "Chcialbys obliczyc wartosc przyblizona z bledu wzglednego czy z bledu bezwzglednego? " << endl;
           cout << "z - blad wzgledny" << endl;
           cout << "w - blad bezwzgledny" <<endl;
           cin >> wyb ;

           {

           if(wyb==z)
             {
                 cout << "Podaj wartosc dokladna: " ;
                 cin >> x ;
                 cout << "Podaj wartosc bledu wzglednego: " ;
                 cin >> bw ;
                 a=x+((bw*x)/100);
                 b=x-((bw*x)/100);
                 cout << "Wartosc przyblizona wynosi; " << a <<"lub " << b << endl;
             }
           if(wyb==w)

             {
                cout << "Podaj wartosc dokladna: " ;
                cin >> x ;
                cout << "Podaj wartosc bledu bezwzglednego: " ;
                cin >> bb ;
                a=x+bb;
                b=x-bb;
                cout << "Wartosc przyblizona wynosi; " << a <<"lub " << b << endl;
                return 0;
             }
             break;
           }
       case 4:
            cout << "Chcialbys obliczyc wartosc dokladna z bledu wzglednego czy z bledu bezwzglednego? " << endl;
            cout << "z - blad wzgledny" << endl;
            cout << "w - blad bezwzgledny" << endl;
            cin >> wyb ;
            {

            if(wyb==z)
            {
                cout << "Podaj wartosc przyblizona: ";
                cin >> y;
                cout << "Podaj wartosc bledu wzglednego: ";
                cin >> bw;
                c=((100*y)/(bw+100));
                d=((100*y)/(100-bw));
                cout << "Wartosc dokladna wynosi: " << c << "lub " << d << endl;
            }

            if(wyb==w)
            {
                cout << "Podaj wartosc przyblizona: ";
                cin >> y;
                cout << "Podaj wartosc bledu bezwzglednego: ";
                cin >> bb;
                c=y-bb;
                d=y+bb;
                cout << "Wartosc dokladna wynosi: " << c << "lub " << d << endl;
            }
            break;
            }

       case 5:
           return 0;
       break;
     }
}