===== 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
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
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
//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
//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
//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;
}