• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Własne funkcje, kilka zmiennych

VPS Starter Arubacloud
0 głosów
222 wizyt
pytanie zadane 23 października 2016 w C i C++ przez czujek22 Dyskutant (7,670 p.)

Witam. Obejrzałem odcinek nr 9 z własnymi funkcjami. Jednak tam są przykłądy z przesyłaniem jednego argumentu. A co jesli chciałbym z int main() przesłać do wlasnej funkcji dwoch lub więcej zmiennych ?

Przykład z dodawaniem

#include <iostream>

using namespace std;

int l1, l2;

void dodawanie(int a, b)
{
    cout<<"suma liczby "<<a<<" i "<<b<<" to: "<<a+b;
}

int main()
{
    cout << "Podaj pierwsza liczbe: ";
    cin>>l1;
    cout << "Podaj pierwsza liczbe: ";
    cin>>l2;

    dodawanie(l1, l2);

    return 0;
}

Na początku myślałem, że po przecinku to przejdzie, jednak nie udaje sie.

komentarz 23 października 2016 przez Szahid Pasjonat (20,930 p.)
Porostu w 7 linijce dodaj int przed zmienną b i będzie śmiało miodnie

3 odpowiedzi

+2 głosów
odpowiedź 23 października 2016 przez zperkowski Stary wyjadacz (11,150 p.)
wybrane 23 października 2016 przez czujek22
 
Najlepsza
#include <iostream>

using namespace std;

int l1, l2;

int dodawanie(int a, int b) {
    return a+b;
}

int main() {
    cout << "Podaj pierwsza liczbe: ";
    cin >> l1;
    cout << "Podaj pierwsza liczbe: ";
    cin >> l2;
    cout << "suma liczby " << l1 << " i " << l2 << " to: " << dodawanie(l1, l2);

    return 0;
}

Po pierwsze każdy argument funkcji musi mieć wskazany typ.

Po drugie nie da się zwarać bezpośrednio wielu wartości z jednej funkcji. Mógłbyś zwracać tablicę kilku zmiennych, ale to nie ma sensu, bo to nie logiczne.

Po trzecie (w związku z pkt. 2) musisz określić typ zwracanej wartości.

@Edit: Wersja z voidem:

#include <iostream>

using namespace std;

int l1, l2;

void dodawanie(int a, int b) {
    cout << "suma liczby " << a << " i " << b << " to: " << a + b;
}

int main() {
    cout << "Podaj pierwsza liczbe: ";
    cin >> l1;
    cout << "Podaj pierwsza liczbe: ";
    cin >> l2;
    dodawanie(l1, l2);
    return 0;
}

 

1
komentarz 23 października 2016 przez criss Mędrzec (172,590 p.)

Po drugie nie da się zwarać bezpośrednio wielu wartości z jednej funkcji. Mógłbyś zwracać tablicę kilku zmiennych, ale to nie ma sensu, bo to nie logiczne.

Ale... nikt niczego takiego nie powiedział.

 Po trzecie (w związku z pkt. 2) musisz określić typ zwracanej wartości.

Jak funkcja ma coś zwracać, to tak, ale jeśli nie, to dlaczego?  

komentarz 23 października 2016 przez zperkowski Stary wyjadacz (11,150 p.)
Co do drugiego to się zgodzę. Nie można zabronić. Dodałem analogiczny kod.

Co do pierwszego to nie rozumiem. Nikt nie powiedział, że się nie da czy że to nie logiczne?
komentarz 23 października 2016 przez czujek22 Dyskutant (7,670 p.)
Dzięki :) Próbowałem też deklarować typ zmiennej

void dodawanie(int a int b)

jednak tez nie wychodziło, ponieważ brakowało przecinka pomiędzy nimi :D
komentarz 23 października 2016 przez criss Mędrzec (172,590 p.)
Nikt nie powiedział, że sie da (zwracać kilku wartości).
komentarz 23 października 2016 przez zperkowski Stary wyjadacz (11,150 p.)
Miałem na myśli, że można zwracać wartość zawierającą wewnątrz jej więcej niż jedną wartość, jednak koncepcyjnie moim zdaniem i tak jest jedno odwołanie. Gdy zwracana jest np. struktura to jest jedna struktura, a wewnątrz jej jest więcej danych. Kwestia interpretacji. Autorowi pytania chyba nie o takie rozdrabnianie się.
0 głosów
odpowiedź 23 października 2016 przez niezalogowany

Musisz je podać w deklaracji funkcji tak:

void dodawanie(int a, int  b)

 

0 głosów
odpowiedź 23 października 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
Nie jestem pewien, ale chyba musisz napisać jeszcze jaki typ zmiennej przed 2 argumentem czyli dodawanie(int a, int b).

Podobne pytania

0 głosów
1 odpowiedź 108 wizyt
pytanie zadane 1 kwietnia 2020 w C i C++ przez Hubert731 Obywatel (1,650 p.)
0 głosów
1 odpowiedź 358 wizyt
pytanie zadane 21 listopada 2018 w C i C++ przez niezalogowany
+1 głos
1 odpowiedź 520 wizyt
pytanie zadane 15 listopada 2017 w C i C++ przez Kamil Kukła Nowicjusz (160 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...