User Tools

Site Tools


tanszek:oktatas:szamitastechnika:fuggvenyek_peldak

Függvények használata

1. feladat: Kérjen be a felhasználótól egy számot (n) írassa ki az n faktoriálist, használjon rekurzív függvényt.

#include <stdio.h>
unsigned long long factorial(int n)
{
    if(n == 0)
    {
        return 1;
    }
    else
    {
        return n * factorial(n - 1);
    }
}

int main()
{
    int n;

    printf("Melyik szam faktorialisat szamoljam?");
    scanf("%d", &n);

    printf("%d! = %llu", n, factorial(n));
}
2. feladat: Kérjen be a felhasználótól egy számot (n) írassa ki a Fibonacci sorozat első n. elemét egy függvény segítségével.

(0, 1, 1, 2, 3, 5, 8, 14, 22, …) Minden szám az előző kettő összege, kivétel az első kettő, ami f(0) = 0, f(1) = 1.

#include <stdio.h>
void fibonacci(int n)
{
    int t1 = 0, t2 = 1, kovetkezo;

    for (int i = 1; i <= n; ++i)
    {
        printf("%d, ", t1);
        kovetkezo = t1 + t2;
        t1 = t2;
        t2 = kovetkezo;
    }
}

int main()
{
    int n;
    printf("Hany elemet irjak ki a Fibonacci sorozatbol?");
    scanf("%d", &n);
    fibonacci(n);
}

3. feladat: Kérjen be a felhasználótól egy számot (n) írassa ki a Fibonacci sorozat n. elemét. Használjon rekurziót!

#include <stdio.h>
int fibonacci(int n)
{
    if(n == 0 || n == 1)
    {
        return n;
    }
    else
    {
        return(fibonacci(n-1) + fibonacci(n-2));
    }
}
int main()
{
    int n;
    printf("Hanyadik elemet irjam ki a Fibonacci sorozatnak?");
    scanf("%d", &n);

    printf("%d", fibonacci(n));
}

4. feladat: Adott egy 10 elemű vektor. Kérje be a felhasználótól a 'min' vagy 'max' szavak egyikét. Írassa ki a legkisebb vagy legnagyobb elemet, használjon függvényre mutató pointert függvény argumentumként.

#include <stdio.h>
int min(int a, int b)
{
    if(a < b)
    {
        return 1;
    }
    return 0;
}

int max(int a, int b)
{
    if(a > b)
    {
        return 1;
    }
    return 0;
}

int valaszt(int(f)(int a, int b), int *v, int n)
{
    int x = v[0];
    for(int i = 1; i < n; i++)
    {
        if(f(v[i], x))
        {
            x = v[i];
        }
    }
    return x;
}

int main()
{
    int v[] = {12,1,23,43,243,2,-1,2,3,55};
    char s[10];
    printf("min vagy max elem?");
    scanf("%s", s);

    if(s[1] == 'i')
    {
        printf("min = %d", valaszt(min, v, 10));
    }
    else
    {
        printf("min = %d", valaszt(max, v, 10));
    }
}

tanszek/oktatas/szamitastechnika/fuggvenyek_peldak.txt · Last modified: 2022/09/05 21:31 by knehez