Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

program zwracajacy wartosc z funkcji do funkcji głównej

Ostatnio zmodyfikowano 2014-07-03 20:55
Autor Wiadomość
antonio12
Temat założony przez niniejszego użytkownika
program zwracajacy wartosc z funkcji do funkcji głównej
» 2014-07-03 15:40:32
Napisałem takie coś:
C/C++
#include <iostream>
using namespace std;

double pytania()
{
    int predkosc, punkty = 0;
    cout << " -------- 1 pytanie --------\n\n";
    cout << "Jaka jest dozwolona predkosc w miescie ? Wynik podaj w km/h \n";
    cin >> predkosc;
   
    if( predkosc == 60 )
    {
        punkty = punkty + 1;
    }
    return punkty;
}

int main()
{
    int wybor, punkty;
   
   
    poczatek:
    cout << "-------- EGZAMIN TEORETYCZNY NA PRAWO JAZDY KATEGORII B --------\n\n\n";
    cout << "Aby zdac trzeba zdobyc 2/3 pkt\n";
   
    cout << "jesli jestes gotow wpisz 1 : ";
    cin >> wybor;
   
    if( wybor == 1 )
    {
        cout << "zaczynamy test\n";
        pytania();
    }
    else
    {
        cout << "sproboj za moment\n";
        system( "cls" );
        goto poczatek;
    }
    int wynik = pytania();
    cout << "Zdobyles : " << wynik << " punktow\n";
   
   
   
    system( "pause" );
}

I mam pytanie czemu jak odpowiem na pytanie to nie przekierowuje mnie do funkcji głównej konkretnie do linijki cout << "Zdobyles : " << wynik << " punktow\n" ?
P-113183
Jacob99
» 2014-07-03 15:49:39
Przekierowuje. Tylko ty dwa razy wywołujesz funkcję
pytania()
, pierwszy raz w
if
, a drugi raz przed
cout
.
P-113184
antonio12
Temat założony przez niniejszego użytkownika
» 2014-07-03 15:55:48
sory ale nie rozumiem. W funkcji pytania() nie może być użyty warunek if ?
P-113185
pekfos
» 2014-07-03 16:34:17
Za każdym razem jak piszesz pytania(), to jest wywoływana funkcja i jej kod jest wykonywany. W main() wywołujesz ją 2 razy.
C/C++
if( wybor == 1 )
{
    cout << "zaczynamy test\n";
    pytania(); // <--
}
else
{
    cout << "sproboj za moment\n";
    system( "cls" );
    goto poczatek;
}
int wynik = pytania(); // <--
cout << "Zdobyles : " << wynik << " punktow\n";
W tym wypadku wynik powinieneś odbierać w if i tam też go wyświetlać.

C/C++
cout << "Jaka jest dozwolona predkosc w miescie ? Wynik podaj w km/h \n";
cin >> predkosc;

if( predkosc == 60 )
Niezły test na B.. ;)
P-113188
Jacob99
» 2014-07-03 16:34:31
Chodzi o to, że w
main()
 wywołujesz dwa razy funkcję
pytania()
.
Pierwszy raz:
C/C++
if( wybor == 1 )
{
    cout << "zaczynamy test\n";
    pytania();
}
Drugi raz:
C/C++
int wynik = pytania();
cout << "Zdobyles : " << wynik << " punktow\n";
P-113189
antonio12
Temat założony przez niniejszego użytkownika
» 2014-07-03 20:55:22
ok dzięki już działa.
P-113217
« 1 »
  Strona 1 z 1