Prosty kalkulator z wykorzystaniem funkcji, proszę o pomoc
Ostatnio zmodyfikowano 2016-06-20 17:43
| Maciekb Temat założony przez niniejszego użytkownika | Prosty kalkulator z wykorzystaniem funkcji, proszę o pomoc » 2016-06-19 20:27:33 #include<iostream>using namespace std;
 int wczyta()
 {
 int a;
 cout << "Podaj liczbe a:";
 cin >> a;
 return a;
 }
 int wczytb()
 {
 int b;
 cout << "Podaj liczbe b:";
 cin >> b;
 return b;
 
 }
 
 int dodawanie( int a, int b )
 {
 return a + b;
 }
 
 
 
 int main()
 {
 wczyta();
 wczytb();
 
 dodawanie( wczyta(), wczytb() );
 
 cout << "a+b=" << dodawanie();
 
 }
 
W tym kodzie kompilator wypluwa mi błąd o następującej treści: C:\Users\Maciek\Desktop\Funkcje 4.cpp||In function 'int main()':| C:\Users\Maciek\Desktop\Funkcje 4.cpp|19|error: too few arguments to function 'int dodawanie(int, int)'| C:\Users\Maciek\Desktop\Funkcje 4.cpp|33|error: at this point in file| ||=== Build finished: 2 errors, 0 warnings ===| Dlaczego tak się dzieje co zmaściłem? | 
|  | 
| Gibas11 | » 2016-06-19 20:29:38 int wynik = dodawanie( wczyta(), wczytb() );cout << "a+b=" << wynik;
 
Wstawiaj kod w znaczniki.  [cpp]...[/cpp] EDIT: Ew. tak: cout << "a+b=" << dodawanie( wczyta(), wczytb() );
 | 
|  | 
| Maciekb Temat założony przez niniejszego użytkownika | » 2016-06-19 20:35:23 #include<iostream>using namespace std;
 int wczyta()
 
 {
 int a;
 cout << "Podaj liczbe a:";
 cin >> a;
 return a;
 }
 int wczytb()
 {
 int b;
 cout << "Podaj liczbe b:";
 cin >> b;
 return b;
 
 }
 
 int dodawanie( int a, int b )
 {
 return a + b;
 }
 
 
 
 int main()
 {
 wczyta();
 wczytb();
 
 
 cout << "a+b=" << dodawanie( wczyta(), wczytb() );;
 
 }
 
Zadziałało ale teraz program karze wpisywać a i b dwa razy, dlaczego tak się stało? | 
|  | 
| carlosmay | » 2016-06-19 20:50:40 wczyta();wczytb();
 
 
 cout << "a+b=" << dodawanie( wczyta(), wczytb() );
 
 | 
|  | 
| Gibas11 | » 2016-06-19 21:04:39 Żeby rozwiać wątpliwości - pamiętaj że kod z funkcji jest wykonywany przy każdym wywołaniu. | 
|  | 
| Maciekb Temat założony przez niniejszego użytkownika | » 2016-06-20 15:03:00 Wielkie dzięki za wytłumaczenie, działa :) | 
|  | 
| Maciekb Temat założony przez niniejszego użytkownika | » 2016-06-20 15:11:23 #include<iostream>using namespace std;
 int wczyta()
 {
 int a;
 cout << "Podaj liczbe a:";
 cin >> a;
 return a;
 }
 int wczytb()
 {
 int b;
 cout << "Podaj liczbe b:";
 cin >> b;
 return b;
 
 }
 
 int dodawanie( int a, int b )
 {
 return a + b;
 }
 
 
 
 int main()
 {
 
 cout << "a+b=" << dodawanie( wczytb(), wczyta() );
 
 }
 
Jeszcze jedno: zamieniłem kolejność i nic to nie zmieniło cout << "a+b=" << dodawanie( wczytb(), wczyta() );   od czego zależy kolejność wykonywania funkcji? | 
|  | 
| lukmas3 | » 2016-06-20 15:20:40 cout << "a+b=" << dodawanie( wczytb(), wczyta() );
 W tym kodzie masz najpierw wywołane wczytb() a potem wczyta(). Nie widzisz róznicy mnoże przez cout << a+b. Daj sobie cout << b+a;
 
 jeśli chodzi o sam wynik to wyniku kolejność wywolania tych funkcji i tak nie zmieni.
 | 
|  | 
| « 1 »  2 |