• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spalanie samochodu

Cloud VPS
0 głosów
502 wizyt
pytanie zadane 18 stycznia 2018 w C i C++ przez Rizenek Nowicjusz (220 p.)

Witam, jestem  w trakcie pisania programu i utknąłem w takim miejscu, że potrzebuje pomocy jak wyjść z pętli, gdyż program nie chce mi przejść do kolejnego pytania, pewnie coś banalnego, ale dopiero zaczynam naukę i jeszcze nie dostrzegam błędów.

oto kod:

 

#include <iostream>

int main()
{
using namespace std;
int zuzycie, paliwo, wybor, wlasne_odleglosc, odleglosc, wlasne_zuzycie;

   cout << "Jak daleko chcesz jechac?" << endl;
   cout << "1. 100km" << endl;
   cout << "2. Pozwol mi wybrac: " << endl;
   cin >> wybor;
{
        while ( wybor == 1 )
            {
        odleglosc = 100;
        cout << "Wybrales odleglosc podrozy na " << odleglosc << "km. ";
            };
        while ( wybor == 2 )
            {
        cout << "Mozesz teraz podac wlasna odleglosc podrozy: " << endl;
        cin >> wlasne_odleglosc;
        odleglosc==wlasne_odleglosc;
        cin.clear();                            // czysci strumien wejsciowy, uzyty w celu zabezpieczenia przed podaniem np. liter
        cin.sync();
            };
        while ( wybor !=1 && wybor !=2 )
            {
            cout << "Wybierz poprawny klawisz: ";
            cin >> wybor;
            };
};
cout << "Teraz pora na srednie spalanie twojego auta: "<<endl;
cout << "1. 10 litrow na 100km" <<endl;
cout << "2. Podaj wlasne: ";

cin >> wybor;
{
    while ( wybor == 1 )
            {
        zuzycie = (100 / 10);
        cout << "Wybrales srednie spalanie auta na: " << zuzycie << "litrow na 100km. ";
            };
        while ( wybor == 2 )
            {
        cout << "Mozesz teraz podac wlasne spalanie auta: " << endl;
        cin >> wlasne_zuzycie;
        zuzycie == wlasne_zuzycie;
        cout << "Wybrales srednie spalanie auta na: " << wlasne_zuzycie << "litrow na 100km. ";
        cin.clear();                            // czysci strumien wejsciowy, uzyty w celu zabezpieczenia przed podaniem np. liter
        cin.sync();
            };
        while (wybor !=1 && wybor !=2)
            {
            cout << "Wybierz poprawny klawisz: ";
            cin >> wybor;
            };
}
   return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 18 stycznia 2018 przez k222 Nałogowiec (30,150 p.)
wybrane 18 stycznia 2018 przez Rizenek
 
Najlepsza
{
        while ( wybor == 1 )
            {
        odleglosc = 100;
        cout << "Wybrales odleglosc podrozy na " << odleglosc << "km. ";
            };
        while ( wybor == 2 )
            {
        cout << "Mozesz teraz podac wlasna odleglosc podrozy: " << endl;
        cin >> wlasne_odleglosc;
        odleglosc==wlasne_odleglosc;
        cin.clear();                            // czysci strumien wejsciowy, uzyty w celu zabezpieczenia przed podaniem np. liter
        cin.sync();
            };
        while ( wybor !=1 && wybor !=2 )
            {
            cout << "Wybierz poprawny klawisz: ";
            cin >> wybor;
            };
};

tutaj zamiast while powinno być if albo switch bo while działa dopóki to co jest w nawiasach jest prawdziwe, porównywanie zmiennej której nie zmieniasz jest zawsze, poza tym te klamry na zewnątrz to jakieś do dekoracji?

komentarz 18 stycznia 2018 przez Rizenek Nowicjusz (220 p.)

Zmienilem na switch i dziala dobrze, tylko mam problem z zabezpieczniem wyboru, np jezeli nacisne 3 ( nie ma takiego przypisu ) wyświetla sie komunikat błędu poprawnie i program woła jeszcze raz żeby podać klawisz, tylko że gdy podam jeszcze raz błędny klawisz program przechodzi dalej, zamiast zapętlić się aż dostanie 1 lub 2. 

 


#include <iostream>

int main()
{
using namespace std;
int zuzycie, paliwo, wybor, wlasne_odleglosc, odleglosc, wlasne_zuzycie;

   cout << "Jak daleko chcesz jechac?" << endl;
   cout << "1. 100km" << endl;
   cout << "2. Pozwol mi wybrac: " << endl;
   cin >> wybor;

    switch(wybor)
    {
    case 1:
        {
        odleglosc = 100;
        cout << "Wybrales odleglosc podrozy na " << odleglosc << "km. ";
        };
    break;

    case 2:
        {
        cout << "Mozesz teraz podac wlasna odleglosc podrozy: " << endl;
        cin >> wlasne_odleglosc;
        odleglosc==wlasne_odleglosc;
        cin.clear();                            // czysci strumien wejsciowy, uzyty w celu zabezpieczenia przed podaniem np. liter
        cin.sync();
        };
    break;

    default:
        {
        cout << "Nie ma takiej opcji w menu: ";
        cin >> wybor;
        cin.clear();                            // czysci strumien wejsciowy, uzyty w celu zabezpieczenia przed podaniem np. liter
        cin.sync();
        };
    };
cout << "Teraz pora na srednie spalanie twojego auta: "<<endl;
cout << "1. 10 litrow na 100km" <<endl;
cout << "2. Podaj wlasne: ";

cin >> wybor;

    switch(wybor)
    {
    case 1:
        {
        zuzycie = (100 / 10);
        cout << "Wybrales srednie spalanie auta na: " << zuzycie << "litrow na 100km. ";
        };
    break;

    case 2:
        {
        cout << "Mozesz teraz podac wlasne spalanie auta: " << endl;
        cin >> wlasne_zuzycie;
        zuzycie == wlasne_zuzycie;
        cout << "Wybrales srednie spalanie auta na: " << wlasne_zuzycie << "litrow na 100km. ";
        cin.clear();                            // czysci strumien wejsciowy, uzyty w celu zabezpieczenia przed podaniem np. liter
        cin.sync();
        };
    break;

    default:
        {
            if (wybor == 1 && wybor ==2)
            cout << "ok";
            else
            cout << "Wybierz poprawny klawisz: ";
            cin >> wybor;

        };
    };
return 0;
};

 

Podobne pytania

0 głosów
2 odpowiedzi 2,022 wizyt
pytanie zadane 2 listopada 2016 w C i C++ przez rafalmagician Obywatel (1,320 p.)
0 głosów
2 odpowiedzi 195 wizyt
pytanie zadane 13 lutego w Python przez NieZaDobryKoder Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 164 wizyt
pytanie zadane 2 grudnia 2020 w OpenGL, Unity przez kacpertrebacz Nowicjusz (190 p.)

93,469 zapytań

142,404 odpowiedzi

322,716 komentarzy

62,852 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...