Program nie chce przejść do kolejnej funkcji.
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Program nie chce przejść do kolejnej funkcji.

AutorWiadomość
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ę.


C/C++
#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;
    }
}
P-147906
» 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 :)
P-147907
» 2016-05-04 00:21:21
funkcja wczytująca właściwie void nic nie robi
C/C++
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).

C/C++
int main()
{
    wczytaj_liczbe(); // to nic nie robi
    wczytaj_liczbe2(); // to też
    menu();
    // ...
}
P-147910
« 1 »
 Strona 1 z 1