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: 2019/11/03 22:52 by admin
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki