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

Co jest nie tak z moim whilem?

0 głosów
41 wizyt
pytanie zadane 25 marca 2020 w C i C++ przez Atman Użytkownik (810 p.)
Wykonałem program na zamianę walut. Teraz mam go udoskonalić, pytając po każdym zakończeniu czy użytkownik chce jeszcze raz rozpocząć proces i musze w tym celu wykorzystać pętlę while. Niestety pętla działa i dla komendy tak i dla komedy nie. Jeśli ktoś wie jak to zmienic byłbym bardzo wdzięczny.

 

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int wybor;
    int kwota;
    int wybor2;
    int eurusd;
    int eurpln;
    int plnusd;
    int plneur;
    int usdeur;
    int usdpln;
    int dalej;

    while (dalej=1)
    {

    cout<<"DOSTEPNE WALUTY"<<endl<<endl;
    
    cout<<"1 - USD"<<endl;
    cout<<"2 - PLN"<<endl;
    cout<<"3 - EUR"<<endl<<endl;
    

    cout<<"Wybierz walute sposrod podanych: ";
    cin>>wybor;

    switch(wybor)
    {
    case 1:
             cout<<"Wybrano dolary amerykanskie"<<endl<<endl;
             cout<<"Podaj kwote wybranej waluty: ";
             cin>>kwota;
             cout<<endl;
             cout<<"DOSTEPNE WALUTY"<<endl<<endl;
             cout<<"1 - EUR"<<endl;
             cout<<"2 - PLN"<<endl<<endl;
             cout<<"Wybierz walute do przekalkulowania z dolarow: ";
             cin>>wybor2;
             cout<<endl<<endl;
             switch (wybor2)
             {
             case 1:
                   usdeur=kwota/1.08;
                   cout<<"Kwota "<<kwota<<" USD w przeliczeniu na euro to "<<usdeur<<" EUR"<<endl<<endl;
             break;

             case 2:
                   usdpln=kwota*4.22;
                   cout<<"Kwota "<<kwota<<" USD w przeliczeniu na zlotowki to "<<usdpln<<" PLN"<<endl<<endl;
             break;

             default: cout<<"Podano nieprawidlowy numer waluty"<<endl<<endl;
             }
    break;

    case 2:
             cout<<"Wybrano polskie zlotowki"<<endl<<endl;
             cout<<"Podaj kwote wybranej waluty: ";
             cin>>kwota;
             cout<<endl;
             cout<<"DOSTEPNE WALUTY"<<endl<<endl;
             cout<<"1 - USD"<<endl;
             cout<<"2 - EUR"<<endl<<endl;
             cout<<"Wybierz walute do przekalkulowania ze zlotowek: ";
             cin>>wybor2;
             cout<<endl<<endl;
             switch (wybor2)
             {
             case 1:
                   plnusd=kwota/4.22;
                   cout<<"Kwota "<<kwota<<" PLN w przeliczeniu na dolary to "<<plnusd<<" USD"<<endl<<endl;
             break;

             case 2:
                   plneur=kwota/4.58;
                   cout<<"Kwota "<<kwota<<" PLN w przeliczeniu na euro to "<<plneur<<" EUR"<<endl<<endl;
             break;

             default: cout<<"Podano nieprawidlowy numer waluty"<<endl<<endl;
             }
    break;

    case 3:
             cout<<"Wybrano euro"<<endl<<endl;
             cout<<"Podaj kwote wybranej waluty: ";
             cin>>kwota;
             cout<<endl;
             cout<<"DOSTEPNE WALUTY"<<endl<<endl;
             cout<<"1 - USD"<<endl;
             cout<<"2 - PLN"<<endl<<endl;
             cout<<"Wybierz walute do przekalkulowania z euro: ";
             cin>>wybor2;
             cout<<endl<<endl;
             switch (wybor2)
             {
             case 1:
                   eurusd=kwota*1.08;
                   cout<<"Kwota "<<kwota<<" EUR w przeliczeniu na dolary to "<<eurusd<<" USD"<<endl<<endl;
             break;

             case 2:
                   eurpln=kwota*4.58;
                   cout<<"Kwota "<<kwota<<" EUR w przeliczeniu na zlotowki to "<<eurpln<<" PLN"<<endl<<endl;
             break;

             default: cout<<"Podano nieprawidlowy numer waluty"<<endl<<endl;
             }
             
    break;

    

    default: cout<<"Podano nieprawidlowy numer waluty"<<endl;
    }

    if ((wybor!=1)&&(wybor!=2)&&(wybor!=3))
        return 0;

    cout<<"Czy ponowic proces? 1.TAK 2.NIE"<<endl;
    cin>>dalej;
    cout<<endl;
    }

    

    system("PAUSE");
    return 0;
    }

1 odpowiedź

0 głosów
odpowiedź 25 marca 2020 przez PgK Obywatel (1,380 p.)
Czy w pierwszej pętli w warunku "while (dalej=1) " nie powinno być "while (dalej==1)"?
komentarz 25 marca 2020 przez Atman Użytkownik (810 p.)
W takim wypadku pojawia się coś czego tym bardziej nie rozumiem. Program pokazuje mi, że zmienna dalej nie została zainicjowana i nie pozwala programowi działać. Kompletnie nie wiem o co chodzi
komentarz 25 marca 2020 przez tkz Nałogowiec (41,900 p.)
A gdzie ją inicializujesz? Zmienna "dalej" nie ma żadnej wartości na początku. Zważając, że jest to zmienna lokalna jej zachowanie nie jest zdefiniowane.

Podobne pytania

0 głosów
1 odpowiedź 223 wizyt
pytanie zadane 15 marca 2019 w C i C++ przez Mardo97 Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 174 wizyt
pytanie zadane 13 lutego 2017 w C i C++ przez MultiGumis Początkujący (330 p.)
+1 głos
3 odpowiedzi 444 wizyt
pytanie zadane 29 lipca 2016 w C i C++ przez mat1911 Nowicjusz (230 p.)

87,976 zapytań

136,557 odpowiedzi

304,510 komentarzy

58,337 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...