Viết chương trình so sánh ba số lớn nhất

Chào các bạn, chắc hẳn các bạn đều biết cách tìm lớn nhất giữa 2 số a và b. Chúng ta chỉ việc so sánh a với b, số nào lớn hơn thì lấy nó thôi. Nhưng với 3 số a, b, c thì sao?

Đề bài: Nhập 3 số nguyên a, b, c từ bàn phím, hãy in ra số lớn nhất trong 3 số đó.

Cách đơn giản mà các bạn có thể nghĩ ngay là so sanh a với b, sau đó so sánh số tìm được với c. Rất đơn giản.

/*

  • Find max of a, b, c */

include

int main[] { int a, b, c; printf["Enter a, b and c\n"]; scanf["%d%d%d", &a, &b, &c]; int max = a; if[max < b] {

max = b;  
} if[max < c] {
max = c;  
} printf["Max is %d\n", max]; return 0; } Rất đơn giản phải không nào. Tuy nhiên nếu chúng ta nâng cấp lên chút là tìm số lớn nhất trong 4 số thì sao? Cách làm tương tự thôi, nhưng sẽ cần thêm 1 cái if nữa để kiểm tra. Với 5 số, 6 số, mỗi lần chúng ta sẽ cần thêm 1 if. Hơi dài dòng. Vậy các bạn hãy nghĩ đến cách dùng hàm nhé. Chúng ta xây dựng 1 hàm tìm max giữa 2 số, sau đó chúng ta có thể dùng lại nó rất tiện lợi. Như ví dụ dưới đây.

Đề bài: Nhập vào 4 số a, b, c, d từ bàn phím, hãy tím số lớn nhất trong 3 số a,b, c và số lớn nhất trong 4 số a, b, c, d.

/*

  • Find max of a, b, c, d */

include

int max[int x, int y] { if[x > y] return x; return y; } int main[] { int a, b, c, d; printf["Enter a, b, c and d\n"]; scanf["%d%d%d%d", &a, &b, &c, &d]; int max3 = max[ max[a, b], c ]; printf["Max of a, b, c is %d\n", max3]; int max4 = max[ max[a, b], max[c, d] ]; printf["Max of a, b, c, d is %d\n", max4]; return 0; } Rất đơn giải phải không. Hàm max sẽ trả về giá trị lớn nhất của 2 số, sau đó chúng ta có thể lấy nó để so sánh với các số khác.

Trong trường hợp tìm số lớn nhất của rất nhiều số thì các bạn hãy dùng tới mảng để nhập và lưu trữ các số đó, sau đó thì tìm số lớn nhất trong mảng.

Bài tập: Nhập vào dãy gồm n số nguyên từ bàn phím [n nhập từ bàn phím], hãy tím số lớn nhất trong dãy n số đã nhập.

Trong hướng dẫn này, mình đã chia sẻ một chương trình dùng để so sánh ba số nguyên từ người dùng nhập vào và trả về số lớn nhất. Để thực hiện so sánh này ta sẽ sử dụng lệnh if-elseif-else.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Chương trình C tìm số lớn nhất

Để tìm số lớn nhất trong ba số thì có rất nhiều cách. Cách thứ nhất là dùng biến tạm, cách thứ hai là so sánh trực tiếp. Để tăng độ phức tạp để các bạn rèn luyện tư duy thì mình sẽ sử dụng cách so sánh trực tiếp.

Chương trình chính như sau:

include

int main[] { int num1,num2,num3; //Yêu cầu người dùng nhập vào ba số để so sánh printf["\nNhap vao ba so can kiem tra:"]; //Lưu ba số vào ba biến scanf["%d %d %d",&num1,&num2,&num3]; if[[num1>num2]&&[num1>num3]]

  printf["\n Number1 la so lon nhat"];  
else if[[num2>num3]&&[num2>num1]]
  printf["\n Number2 la so lon nhat"];  
else
  printf["\n Number3 la so lon nhat"];  
return 0; }

Giả sử bạn nhập ba số là: 15 200 101 thì kết quả sẽ như sau:

Bài viết này được đăng tại [free tuts .net]

Nhap vao ba so can kiem tra: 15 200 101 Number2 la so lon nhat

Thực ra bạn nên đưa chương trình nào vào một hàm riêng để có thể tái sử dụng nhiều lần. Tuy nhiên vì các bạn chưa học cách tạo hàm trong C nên tạm thời hãy hiểu thuật toan đã nhé. Còn nếu bạn đã biết thì có thể tham khảo đoạn code sau:

1. Bài toán : Nhập vào ba số a,b,c . Tìm giá trị lớn nhất trong ba số trên . 2. Thuật toán : Bước 1 : Nhập vào ba số a,b,c . Bước 2 : Gán giá trị max =a . Bước 3 : So sánh max với b , nếu max

Chủ Đề