Stránka 1 z 1

Volání funkce s argumentem

Napsal: 04 črc 2011 16:35
od Zeppelin
Ahoj, jak prosím zavoláte funkci s dvěma argumenty?

Tady je vymyšlený příklad. Takhle to ale nefunguje :D Děkuju moc.

int One(int a, int b)
{
Two(int a = 5, int b = 7); // Zavolá funkci "Two" a předá jí hodnoty "a" a "b"
}

int Two(int a, int b)
{
a + b; // Tady sečte 5 + 7
}

Ty komentáře sdělují co bych chtěl a ne co to skutečně dělá

Re: Volání funkce s argumentem

Napsal: 04 črc 2011 19:20
od General

Kód: Vybrat vše

int One(int a, int b) {
    return Two(a, b);
}

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

int i = One(5, 7); //do proměnný "i" uloží 12

Takhle si to myslel? :D

Re: Volání funkce s argumentem

Napsal: 04 črc 2011 20:11
od Zeppelin
Nejsem si jistý že je to ono-já potřebuju zavolat funkci a předat jí hodnotu dvou proměnných-tohle to není ne?

Re: Volání funkce s argumentem

Napsal: 04 črc 2011 20:30
od faraon
Takže chceš aby funkce One předala funkci Two to co dostala do argumentů? A co pak udělá s vráceným výsledkem?

Kód: Vybrat vše

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


Kód: Vybrat vše

int one(int a,int b)
       {
       int c;

       c=two(a,b);
       /* zpracovat c? */
       return c;
       }


Kód: Vybrat vše

int main(void)
        {
        int x;

        x=one(5,7);
        printf("%d\n",x);
        return 0;
        }

Re: Volání funkce s argumentem

Napsal: 04 črc 2011 20:45
od Zeppelin
int a = 5; // Počáteční hodnota
int b = 7; // Počáteční hodnota


int One(int a, int b)
{
a++; // Tady se inkremnetuje proměnná a
b++; // Tady se inkremnetuje proměnná b

x = a + b; // Tady máme x = 6 + 8

Two(int a = 2, b = 4); // Tady voláme funkci Two s tím, že jí předáme jiné hodnoty obou proměnných
}

Nebo mám udělat? :

int a = 5; // Počáteční hodnota
int b = 7; // Počáteční hodnota

int One(int a, int b)
{
a++; // Tady se inkremnetuje proměnná a
b++; // Tady se inkremnetuje proměnná b

x = a + b; // Tady máme x = 6 + 8

a = 2;
b = 4;

Two(int a, int b); // Tady voláme funkci Two s tím, že jí předáme jiné hodnoty obou proměnných
}

Re: Volání funkce s argumentem

Napsal: 04 črc 2011 21:09
od faraon
V programu funkci voláš takhle:

vysledek=Two(a,b)

Nic víc není potřeba, hodnoty už máš v obou proměnných uložené, a jejich typ je udaný v deklaraci funkce, takže ho přece nebudeš vypisovat v každém volání, to bys to tam mohl mít také stokrát :wink:

Dokonce bys mohl napsat:

vysledek=Two(++a,++b)

Program by nejdřív inkrementoval obě proměnné, a teprve pak by s nimi zavolal tu funkci.

Re: Volání funkce s argumentem  Vyřešeno

Napsal: 04 črc 2011 22:06
od Zeppelin
OK, díky moc.