Tìm số lớn nhất trong 3 số
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?
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 <stdio.h> 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.
/* * Find max of a, b, c, d */ #include <stdio.h> 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.
int max(int x, int y)
{
if(x > y) return x;
return y;
}
anh có giải thích rõ đoạn hàm này không và rộng hơn là cách máy thực thi bài toán này ạ, em cảm ơn
hàm này là hàm tìm số lớn trong 2 số x, y. nếu x lớn thì trả về x qua lệnh return x, ngược lịa trả về y.
int max(int x, int y)
{
if(x > y) return x;
return y;
}
tại sao nó lại là x,y mà không phải a,b,c,d ạ
x, y hay a, b cũng chỉ là têb gọi, tên biến. bạn thích thế nào cũng dk.