User Tools

Site Tools


tanszek:oktatas:szamitastechnika:elagazasok

Elágazások

Az elágazások segítségével a program bizonyos feltételek teljesülése esetén különböző utasításokat hajt végre.

Az if szerkezet alap szintaxisa:

 

if (feltetel) {
    // akkor fut le, ha a feltétel igaz (nem 0)
}

Példa:

 
int szam = 5;

if (szam > 0) {
    printf("A szam pozitiv.\n");
}

if – else

Ha a feltétel nem teljesül, akkor a másik ág fut le.

 
if (feltetel) {
    // igaz ág
} else {
    // hamis ág
}

Példa:

 
int szam = -3;

if (szam >= 0) {
    printf("A szam nem negativ.\n");
} else {
    printf("A szam negativ.\n");
}

if – else if – else

Több feltétel vizsgálatára használható.

 
if (feltetel1) {
    // ha feltetel1 igaz
} else if (feltetel2) {
    // ha feltetel2 igaz
} else {
    // ha egyik sem igaz
}

Példa:

 
int jegy = 3;

if (jegy == 5) {
    printf("Jeles!\n");
} else if (jegy == 4) {
    printf("Jo!\n");
} else if (jegy == 3) {
    printf("Kozepes!\n");
} else if (jegy == 2) {
    printf("Elegseges!\n");
} else {
    printf("Elegtetlen!\n");
}

switch-case szerkezet

A switch több különböző érték szerint választ ágat.

 
switch (valtozo) {
    case ertek1:
        // utasitasok
        break;
    case ertek2:
        // utasitasok
        break;
    ...
    default:
        // ha egyik sem egyezik
}

Példa:

 
int nap = 3;

switch (nap) {
    case 1:
        printf("Hetfo\n");
        break;
    case 2:
        printf("Kedd\n");
        break;
    case 3:
        printf("Szerda\n");
        break;
    default:
        printf("Ismeretlen nap\n");
}

Számológép készítése

Feladat: Írjunk egyszerű számológépet, ami két számot olvas be és a felhasználó által választott műveletet elvégzi (+, -, *, /).

 
#include <stdio.h>

int main() {
    double a, b;
    char muvelet;

    printf("Adj meg ket szamot: ");
    scanf("%lf %lf", &a, &b);

    printf("Valassz muveletet (+, -, *, /): ");
    scanf(" %c", &muvelet); // fontos a szóköz a %c előtt!

    switch (muvelet) {
        case '+':
            printf("Eredmeny: %.2lf\n", a + b);
            break;
        case '-':
            printf("Eredmeny: %.2lf\n", a - b);
            break;
        case '*':
            printf("Eredmeny: %.2lf\n", a * b);
            break;
        case '/':
            if (b != 0)
                printf("Eredmeny: %.2lf\n", a / b);
            else
                printf("Hiba: Nullaval nem lehet osztani!\n");
            break;
        default:
            printf("Ervenytelen muvelet!\n");
    }

    return 0;
}

Gyakorlás

#include <stdio.h>

int main(void) {
    int x;
    scanf("%d", &x); //szám bekérése
    
    //Pozitív, negatív vagy nulla vizsgálata
    if (x > 0) {
        printf("Pozitív\n");
    } else if (x < 0) {
        printf("Negatív\n");
    } else {
        printf("Nulla\n");
    }
    
    //Páros/páratlan vizsgálat
    if (x % 2 == 0) {
        printf("Páros\n");
    } else {
        printf("Páratlan\n");
    }
    
    return 0;
}


#include <stdio.h>

//Két szám összehaosnlítása
int main(void) {
    int a, b;
    scanf("%d %d", &a, &b);

    if (a > b) {
        printf("%d nagyobb mint %d\n", a, b);
    } else if (a < b) {
        printf("%d nagyobb mint %d\n", b, a);
    } else {
        printf("A két szám egyenlő\n");
    }

    return 0;
}


#include <stdio.h>

//Szökőév vizsgálat
int main(void) {
    int ev;
    scanf("%d", &ev);

    if ((ev % 400 == 0) || (ev % 4 == 0 && ev % 100 != 0)) {
        printf("Szökőév\n");
    } else {
        printf("Nem szökőév\n");
    }

    return 0;
}


#include <stdio.h>

//Háromszög
int main(void) {
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);

    if (a + b > c && a + c > b && b + c > a) {
        printf("Szerkeszthető háromszög.\n");
    } else {
        printf("Nem szerkeszthető háromszög.\n");
        return 0;
    }
    
    if (a == b && b == c) {
        printf("Egyenlő oldalú háromszög\n");
    } else if (a == b || b == c || a == c) {
        printf("Egyenlő szárú háromszög\n");
    } else {
        printf("Általános háromszög\n");
    }

    return 0;
}

tanszek/oktatas/szamitastechnika/elagazasok.txt · Last modified: 2025/10/01 12:24 by szabom