niedziałający program z instrukcją switch

0

Witam, jestem dopiero początkującym programistą i pisałem ostatnio (dla ćwiczeń) taki prosty program:

#include <iostream.h>
main()
{
      int PKB, PKBpc, populacja, wybor, kraj ;
      cout << "O jaki kraj chodzi? \n" ;
      cin >> kraj ;
      cout << "Co wiemy na jego temat?"
      << "\n 1. PKB i populacja"
      << "\n 2. PKB per capita i populacja" 
      << "\n 3. PKB i PKB per capita" 
      << "\n Wpisz liczbę porządkową wybranej opcji: \n" ;
      cin >> wybor ;
      switch (wybor)
      {
             case 1 :
                  cout << "Podaj PKB w dolarach \n" ;
                  cin >> PKB ;
                  cout << "Podaj populacje w osobach \n" ;
                  cin >> populacja ;
                  PKBpc = PKB / populacja ;
                  cout << kraj << "posiada " << PKBpc 
                  << " dolarow PKB per capita" ;
                  break;
                  
             case 2 :
                  cout << "Podaj PKB per capita w dolarach \n" ;
                  cin >> PKBpc ;
                  cout << "Podaj populacje w osobach \n" ;
                  cin >> populacja ; 
                  PKB = populacja * PKBpc ;
                  cout << kraj << "posiada " << PKB << " dolarow PKB" ;
                  break;
                  
             case 3 :
                  cout << "Podaj PKB w dolarach \n" ;
                  cin >> PKB ;                       
                  cout << "Podaj PKB per capita w dolarach \n" ;
                  cin >> PKBpc ;
                  populacja = PKB / PKBpc ;
                  cout << kraj << " zamieszkuje " << populacja << " ludzi" ;
                  break;
                  
             default :  
                  cout << "Nieprawidlowa opcja \n" ;
                  break;
                        
      }
}

I program nie działa, kiedy wpisuję zmienną "kraj" to program wykonuje wszystko jakby nie było w ogóle instrukcji "cin >> wybor" i switch, wyświetla [cout << "Nieprawidlowa opcja \n" ;] od razu po [<< "\n Wpisz liczbę porządkową wybranej opcji: \n" ; ]. Wie ktoś może co powoduje taki stan rzeczy i gdzie dokładnie jest błąd w kodzie? Za odpowiedź z góry dziękuję.

0

Przede wszystkim to się nie kompiluje. main musi zwracać int. Poza tym nie powinno się używać <iostream.h> a <iostream>. Strumienie znajdują się w przestrzeni nazw std o czym też zapomniałeś.

Po skompilowaniu wszystko działa jak należy: http://ideone.com/li7a7Q

Podczas uruchamiania wpisujesz coś źle. Powiedz co dokładnie wpisujesz.

0

kraj to u ciebie liczba, jeżeli zamiast liczby wpiszesz np Polska to nie ma co się dziwić że dalej nić nie wczytuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1