Đây là cách tổng quát nhất viết quyết định đa hướng.
Cú pháp
if (condition1) stmt1; else if (condition2) stmt2; ... else if (condition n) stmtn; else stmt_x;

Thuật toán
BẮT ĐẦU
Bước 1: Khai báo int.
Bước 2: Đọc a,b,c,d runtime.
Bước 3:
i. if(a>b && a>c && a>d) In a lớn nhất
ii. else if(b>c && b>a && b>d) In b lớn nhất
iii. else if(c>d && c>a && c>b) In c lớn nhất
iv. else In d lớn nhất
KẾT THÚC
Ví dụ 1
Chương trình tìm số lớn nhất trong 4 số:
#include <stdio.h>
void main() {
int a, b, c, d;
printf("Nhập a,b,c,d: ");
scanf("%d%d%d%d", &a, &b, &c, &d);
if (a > b && a > c && a > d)
printf("%d lớn nhất", a);
else if (b > c && b > a && b > d)
printf("%d lớn nhất", b);
else if (c > d && c > a && c > b)
printf("%d lớn nhất", c);
else
printf("%d lớn nhất", d);
}
Kết quả
Lần 1: 2 4 6 8 → 8 lớn nhất Lần 2: 23 12 56 23 → 56 lớn nhất
Ví dụ 2: Xếp loại điểm
#include <stdio.h>
int main() {
int marks;
printf("Nhập điểm: ");
scanf("%d", &marks);
if (marks <= 100 && marks >= 90) printf("Grade=A");
else if (marks < 90 && marks >= 80) printf("Grade=B");
else if (marks < 80 && marks >= 70) printf("Grade=C");
else if (marks < 70 && marks >= 60) printf("Grade=D");
else if (marks < 60 && marks > 50) printf("Grade=E");
else if (marks == 50) printf("Grade=F");
else if (marks < 50 && marks >= 0) printf("Rớt");
else printf("Nhập điểm 0-100");
return 0;
}
Kết quả
Lần 1: 78 → Grade=C Lần 2: 98 → Grade=A