Podmienený príkaz IF-ELSE zložený
syntax:
if(výraz1) príkaz1; else if(výraz2) príkaz2; else if(výraz3); príkaz3; else ... príkaz;
Pri vetvení je možné príkazy if else do seba vnárať. Pri vzájomnom vnáraní sa časť else automatický priradí najbližšiemu predchádzajúcemu if. Jedná sa o viaccestné rozhodovanie (prepínač). Výrazy sa vyhodnocujú v uvedenom poradí, pokiaľ sa nenarazí na pravdivý výraz. Potom sa vykoná k nemu prislúchajúci príkaz. Príkaz za posledným else sa vykoná ak žiaden z predchádzajúcich výrazov nebol pravdivý. Môže to byť napríklad chybové hlásenie.
Vzorový príklad:
Napíšte program, ktorý po načítaní 2 čísel vypíše väčšie číslo alebo v prípade že sú rovnaké, tak vypíše že sa rovnajú
#includ<stdio.h> int main(void) { int a,b; printf("zadaj prvé číslo a\n"); scanf("%d",&a); printf("zadaj druhé číslo b\n"); scanf("%d",&b); if (a == b) printf("čísla sa rovnajú\n"); else if (a > b) printf("väčšie je prvé číslo\n"); else printf("väčšie je druhé číslo\n"); return 0; }

Úloha číslo
1: Napíšte program ktorý vypočíta obvod alebo obsah kruhu. Vstupom je polomer kruhu a možnosť pre obsah a obvod (1,2).
#include <stdio.h>
int main(void)
{
int r,m;
float obsah,obvod;
printf("zadaj polomer kruhu\n");
scanf("%d",&r);
printf("zadaj či chceš vpočítať obsah(1) alebo obvod(2)\n");
scanf("%d",&m);
if (m == 1)
{
obsah = 3.14*r*r;
printf("obsah sa rovná: %.2f\n",obsah);
}
else if (m == 2)
{
obvod = 2*3.14*r;
printf("obvod sa rovná: %.2f\n",obvod);
}
else printf("nezadal si správnu možnosť\n");
return 0;
}

Úloha číslo 2: Napíšte program, ktorý načíta tri strany trojuholníka a zistí či sa jedná o rôznostranný, rovnoramenný alebo rovnostranný trojuholník.
#include <stdio.h>
int main(void)
{
int a,b,c;
printf("zadaj číslo a\n");
scanf("%d",&a);
printf("zadaj číslo b\n");
scanf("%d",&b);
printf("zadaj číslo c\n");
scanf("%d",&c);
if (a == b && b == c)
printf("trojuholník je rovnostranný\n");
else if (a == b || b == c || c == a)
{
printf("trojuholník je rovnoramenný\n");
}
else printf("trojuholník je rôznostranný\n");
return 0;
}

Príklad 3: Napíšte program, ktorý vypočíta kvadratickú rovnicu.
#include <stdio.h>
#include <math.h>
int main(void)
{
int a,b,c;
float D,x1,x2,x;
printf("zadaj číslo a\n");
scanf("%d",&a);
printf("zadaj číslo b\n");
scanf("%d",&b);
printf("zadaj číslo c\n");
scanf("%d",&c);
D = (b*b)-(4*a*c);
if (D > 0)
{
x1 = (-b - sqrt(D))/(2*a);
x2 = (-b + sqrt(D))/(2*a);
printf("výsledky rovnice sú x1 = %f x2 = %f b\n",x1,x2);
}
else if (D == 0)
{
x = (((-b)+sqrt(0))/(2*a));
printf("výsledok rovnice je x = %f\n",x);
}
else printf("rovnica nemá výsledok v R\n");
return 0;
}
