too few arguments to function

Odpowiedz Nowy wątek
2017-06-19 20:54
0

Pomocy, wyskakuje mi taki komunikat: too few arguments to function
jak to poprawić ?

#include <iostream>
 
using namespace std;
 
long long c_n(long n,long p) {
    if(n==0) {
        return p;
    } else if(n%2==0) {
        return c_n(n-1)/2;
    } else {
        return c_n(n-1)*3+1;
    }
}
 
int main() {
    cout << c_n(0) << endl;
    cout << c_n(1) << endl;
    cout << c_n(2) << endl;
    cout << c_n(15) << endl;
    cout << c_n(500) << endl;
    cout << c_n(1000000) << endl;
}

Polecenie w załączniku

edytowany 4x, ostatnio: furious programming, 2017-06-19 23:30

Pozostało 580 znaków

2017-06-19 21:03
1
lololo789 napisał(a):

Pomocy, wyskakuje mi taki komunikat: too few arguments to function

A znasz na tyle angielski by zrozumieć co znaczy "too few arguments to function"?

Funkcja jest zdefiniowana dla 2 argumentów, a ty podajesz 1, więc słusznie ci wyskakuje.

Pozostało 580 znaków

2017-06-19 21:10
0

wiem co to znaczy, ale nie wiem jak to porawić

Jakto jak? Podać 2 argumenty, a nie 1. - GutekSan 2017-06-19 21:15

Pozostało 580 znaków

2017-06-19 21:18
0

a jaki jest 1 argument, a jaki 2 ?

1 argument to n, a drugi to p. - GutekSan 2017-06-19 21:21

Pozostało 580 znaków

2017-06-19 21:28
0
long long c_n(long n,long p) {
    if(n==0) {
        return p;
    } else if(n%2==0) {
        return c_n((n-1)/2, p);
    } else {
        return c_n((n-1)*3+1, p);
    }

tak ?

edytowany 1x, ostatnio: Patryk27, 2017-06-19 21:53
Nie tak, choć przynajmniej dodałeś p. Źle, że mnożysz i dzielisz argument zamiast wartości funkcji. - GutekSan 2017-06-19 21:37
co konkretnie ? - lololo789 2017-06-19 21:47
pomyśl chwilę, zamiast ciągle się pytać. Naprowadziłem cię. - GutekSan 2017-06-19 21:49
Umieszczaj kod w znacznikach. - Patryk27 2017-06-19 21:54

Pozostało 580 znaków

2017-06-19 21:29
0

Masz swoją funkcję " c_n(argument 1, argument 2)", natomiast przy wywoływaniu, czyli:

cout << c_n(0) << endl;

Podajesz tylko jeden z nich.

edytowany 1x, ostatnio: furious programming, 2017-06-19 23:31
no to chyba tak mam - lololo789 2017-06-19 21:43

Pozostało 580 znaków

2017-06-19 21:54
0

Masz funkcję, która przyjmuje dwa argumenty, podczas gdy Ty przekazujesz jeden - czego tu nie rozumiesz?

To tak, jak gdybyś poprosił kolegę o podanie dwóch liczb, po czym on mówi jedną i jest zadowolony, że spełnił polecenie.


edytowany 2x, ostatnio: Patryk27, 2017-06-19 21:57
jestem początkujący - lololo789 2017-06-19 22:10
Poczatkujacy w mysleniu? XD bez obrazy kolego, musialem;) - stivens 2017-06-19 22:15

Pozostało 580 znaków

2017-06-19 22:18
0

moglibyscie juz dawno napisac to, nic nie pomagacie

Pozostało 580 znaków

2017-06-19 22:20
1

Hej, sluchaj - ile masz lat? Jesli 12 to przepraszam i nawet propsuje, ze sie uczysz juz. Jesli wiecej... To chyba sie nie nadajesz na programiste :/


[You know nothing, Jon Snow…]

Pozostało 580 znaków

2017-06-19 22:20
1

Wytłumacz proszę, czego nie rozumiesz w tym, że kolega (funkcja) prosi Cię o podanie dwóch liczb, a Ty mówisz mu jedną.

Taki zapis:

long long c_n(long n,long p)

Oznacza, że deklarujesz (w tamtym kontekście również od razu definiujesz) funkcję c_n, która przyjmuje dwie liczby, kolejno: n oraz p.

Natomiast w tym momencie:

cout << c_n(0) << endl;

Wywołujesz Twoją funkcję c_n z jedną liczbą (tutaj zerem), nie podając żadnej wartości dla drugiego parametru.


edytowany 1x, ostatnio: Patryk27, 2017-06-19 22:20

Pozostało 580 znaków

2017-06-19 22:23
0
#include <iostream>
 
using namespace std;
 
long long c_n(long n,long p) {
    if(n==0) {
        return p;
    } else if(n%2==0) {
        return c_n((n-1)/2, p);
    } else {
        return c_n(3*(n-1)+1, p);
    }
}
 
int main() {
    cout << c_n(0,1) << endl;
    cout << c_n(1,5) << endl;
    cout << c_n(2,4) << endl;
    cout << c_n(15,45) << endl;
    cout << c_n(500,2500) << endl;
    cout << c_n(10000,500000) << endl;
}
edytowany 1x, ostatnio: Patryk27, 2017-06-19 22:23
Wrzucaj kod w odpowiednie znaczniki. Następny niesformatowany post pójdzie do /dev/null. - Patryk27 2017-06-19 22:23

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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