Program nie chce przejść do kolejnej funkcji.
Ostatnio zmodyfikowano 2016-05-04 00:21
exen11 Temat założony przez niniejszego użytkownika |
Program nie chce przejść do kolejnej funkcji. » 2016-05-03 20:36:03 Hej, mam mały problem. Otóż gdy wpiszę dwie pierwsze liczby, pokazuje się menu i zamiast móc wybrać z tego menu, program znowu prosi by wpisać pierwszą cyfrę. #include <iostream> using namespace std;
int wczytaj_liczbe() { int liczba1; do { cout << "wpisz 50: "; cin >> liczba1; cin.clear(); cin.sync(); if( liczba1 != 50 ) cout << "nie wpisales tego co miales" << endl; } while( liczba1 != 50 ); return liczba1; } void wczytaj_liczbe2() { int liczba2; do { cout << "podaj druga cyfre:"; cin >> liczba2; cin.clear(); cin.sync(); } while( liczba2 <= 0 ); }
void menu() { cout << "[1] - dodawanie" << endl; cout << "[2] - odejmowanie" << endl; cout << "[0] - wyjscie" << endl; }
int main() { wczytaj_liczbe(); wczytaj_liczbe2(); menu(); int liczba2; int liczba1 = wczytaj_liczbe(); int wybor; cin >> wybor; switch( wybor ) { case 1: cout << liczba1 << " + " << liczba2 << " = " << liczba1 + liczba2 << endl; break; case 2: cout << liczba1 << " - " << liczba2 << " = " << liczba1 - liczba2 << endl; break; return 0; } }
|
|
Garniturek |
» 2016-05-03 20:44:27 Ma początku main wywołujesz obie funkcję wczytujące, potem funkcję wyświetlającą menu, a potem zmiennej przypisujesz wartość zwracaną przez te funkcje funkcja wczytująca właściwie void nic nie robi, musisz do niej przekazać liczbe2 jako argument, jeśli chcesz mieć ją typu void :) |
|
carlosmay |
» 2016-05-04 00:21:21 funkcja wczytująca właściwie void nic nie robi
int wczytaj_liczbe() { }
int liczba1 = wczytaj_liczbe();
|
Funkcji typu void nie jest używana i jest całkiem zbędna. int wczytaj_liczbe() domyślam się, że dla testu jest wartość 50. Najczytelniej jest gdy funkcje wczytujące zwracają wartość. Można jawnie przypisać wartość zwracaną, zamiast aktualizacji w funkcji (mniej czytelne). int main() { wczytaj_liczbe(); wczytaj_liczbe2(); menu(); }
|
|
|
« 1 » |