Trong bài viết này hãy cùng TUICOCACH.COM giải bài tập Tìm max min của 3 số a b c nhập từ bàn phím lập trình C/C++. Đây là một dạng bài tập rất cơ bản giúp cho việc luyện tập code lập trình C/C++.
Tìm max min của 3 số a b c trong C/C++
Ý tưởng của bài toán này sẽ rất đơn giản, ta có thể áp dụng theo 2 cách như sau:
Cách 1: Ta sử dụng 3 lệnh if, với mỗi lệnh if sẽ lấy 1 phần tử so sánh với 2 phần tử còn lại, nếu phần tử đó lớn hơn hoặc bằng cả 2 phần tử thì phần tử đó chính là max.
- if(a >= b && a >= c) max = a;
- if(b>= a && b>= c) max = b;
- if(c >= a && c >= b) max = c;
Cách 2: Ta so sánh 2 phần tử a và b với nhau, tìm được số nào lớn hơn thì gọi là max, tiếp tục lấy max so sánh với phần tử c.
- Bước 1: Nếu a > b thì max = a, ngược lại max = b
- Bước 2: nếu max < c thì max = c
=> Tì min ta so sánh ngược lại
Chương trình mẫu
Mình sẽ viết chương trình mẫu như sau:
#include <stdio.h>
int main()
{
int a, b, c;
printf("Nhap ln luot 3 so a,b, c: ");
scanf("%d %d %d", &a, &b, &c);
printf("\n-------CACH 1-------\n");
int max, min;
//Tìm max
if(a >= b&& a>= c) max = a;
else if(b>= a && b>= c) max = b;
else if(c >= a && c >= b) max = c;
//Tìm min
if(a <= b&& a<= c) min = a;
else if(b <= a && b<= c) min = b;
else if(c <= a && c <= b) min = c;
printf(" max la: %d\n min la: %d", max, min);
printf("\n\n--------CACH 2-----\n");
//Tìm max
if(a > b) max = a;
if(max < c) max=c;
//Tìm min
if(a > b) min = b;
if(max > c) min = c;
printf(" max la: %d\n min la: %d", max, min);
}
Tuy nhiên khi viết code thì mình khuyến khích các bạn nên viết thành hàm, và dưới đây mình sẽ code mẫu như sau(Mình chỉ code với cách 2 nhé):
- Khóa học lập trình C/C++ từ A-Z cho người mới – Giảm giá 40% hôm nay
- Khóa học Java cơ bản dành cho người mới bắt đầu- Giảm 40% hôm nay
- Khóa học lập trình Android từ cơ bản đến thành thạo – Giảm ngay 40%
#include <stdio.h>
//Hàm tìm max giữa 2 số
int max(int a, int b){
return a > b ? a : b; //Cách viết này tương tự như if else, a > b là điều kiện, sau dấu ? là trường hợp if, sau dấu : là else
}
//Hàm tìm min giữa 2 số
int min(int a, int b){
if(a < b) return a;
else return b;
}
//Hàm tìm và hiển thị Max, Min
void timMaxMin(int a, int b, int c)
{
int maxx, minn; //Đặt tên biến như vậy để không trùng với tên hàm, khi đặt tên biến các bạn cũng nên lưu ý là kg nên đặt hản là max với min vì sẽ dễ bị trùng với tên hàm có sẵn trong các thư viên, ví dụ như thu viện math.h sẽ có sẵn hàm max, min
maxx = max(a, max(b,c)); //Viết như này tức là mình tìm max giữa b với c rồi tiếp tục so sánh với a
minn = min(a, min(b,c)); //Tương tự
printf(" max la: %d\n min la: %d", maxx, minn); //Hiển thị kết quả
}
int main()
{
int a, b, c;
printf("Nhap ln luot 3 so a,b, c: ");
scanf("%d %d %d", &a, &b, &c);
timMaxMin(a, b, c);
return 0;
}
Bạn chạy thử chương trình nhé!
[Xem tất cả bài viết chủ đề C/C++ tại đây]
tốt quá cảm ơn nhé