Thuật toán so sánh tuần tự để tìm giá trị lớn nhất trong 3 số nguyên.
Logic so sánh
- So sánh
num1vớinum2 - Nếu
num1 > num2, so sánhnum1vớinum3 - Ngược lại, so sánh
num2vớinum3
Mã nguồn
using System;
namespace Demo {
class MyApplication {
static void Main(string[] args) {
int num1 = 10, num2 = 20, num3 = 50;
if (num1 > num2) {
if (num1 > num3) {
Console.WriteLine("Số thứ nhất là lớn nhất!");
} else {
Console.WriteLine("Số thứ ba là lớn nhất!");
}
} else if (num2 > num3) {
Console.WriteLine("Số thứ hai là lớn nhất!");
} else {
Console.WriteLine("Số thứ ba là lớn nhất!");
}
}
}
}
Kết quả
Số thứ ba là lớn nhất!
Cách viết gọn hơn (khuyên dùng)
// Dùng Math.Max lồng nhau
int max = Math.Max(num1, Math.Max(num2, num3));
Console.WriteLine("Số lớn nhất: " + max);
// Hoặc dùng LINQ (cần using System.Linq)
int max = new[] { num1, num2, num3 }.Max();
Mở rộng: Nhập từ bàn phím
Console.Write("Nhập số 1: "); int a = int.Parse(Console.ReadLine());
Console.Write("Nhập số 2: "); int b = int.Parse(Console.ReadLine());
Console.Write("Nhập số 3: "); int c = int.Parse(Console.ReadLine());
int max = Math.Max(a, Math.Max(b, c));
Console.WriteLine("Max = " + max);
Lưu ý
- Code gốc dùng lồng
if-else— dễ hiểu nhưng dài dòng. Math.Maxvà LINQMax()ngắn gọn, dễ đọc, hiệu năng tương đương.- Xử lý trường hợp bằng nhau: code gốc in "Số thứ ba lớn nhất" nếu num3 >= num1 và num3 >= num2.