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

Spalanie samochodu

VPS Starter Arubacloud
0 głosów
338 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 1,461 wizyt
pytanie zadane 2 listopada 2016 w C i C++ przez rafalmagician Obywatel (1,320 p.)
0 głosów
0 odpowiedzi 103 wizyt
pytanie zadane 2 grudnia 2020 w OpenGL, Unity przez kacpertrebacz Nowicjusz (190 p.)
0 głosów
1 odpowiedź 271 wizyt
pytanie zadane 28 maja 2023 w C i C++ przez Szyszka Gaduła (3,490 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...