Trong bài viết này hãy cùng TUICOCACH.COM giải bài tập Tìm phần tử max min trong mảng 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 phần tử max min trong mảng
Giả sử ta có mảng A gồm n phần tử, ý tưởng giải bài toán sẽ như sau:
Tìm phần tử max
Bước 1: Gắn max = phần tử thứ 0 (A[0])
Bước 2: Duyệt vòng lặp i chạy từ 1 tới < n
Bước 3: Nếu phần tử thứ A[i] mà lớn hơn max ta gắn lại max = A[i]
=>Sau khi chạy hết vòng lặp thì max chính là phần tử lớn nhất cần tìm
Tìm phần tử min
Bước 1: Gắn min = phần tử thứ 0 (A[0])
Bước 2: Duyệt vòng lặp i chạy từ 1 tới < n
Bước 3: Nếu phần tử thứ A[i] mà nhỏ hơn min ta gắn lại min = A[i]
=>Sau khi kết thúc vòng lặp thì min chính là phần tử bé nhất cần tìm
Mình sẽ code chương trình mẫu như sau
#include <stdio.h>
int main()
{
int n;
int A[100]; //Khai báo tối đa mảng A gồm 100 phần tử
printf("Nhap n: ");
scanf("%d", &n);
//Vòng for nhập mảng
for(int i = 0; i<n;i++)
{
printf("A[%d] = ", i);
scanf("%d", &A[i]);
}
//Tìm max
int maxx = A[0];
for(int i = 0; i<n;i++)
{
if(A[i] > maxx) maxx = A[i];
}
//Tìm min
int minn = A[0];
for(int i = 0; i<n;i++)
{
if(A[i] < minn) minn = A[i];
}
//Hieent hị kết quả
printf("\n\nPhan tu max la: %d", maxx);
printf("\nPhan tu min la: %d", minn);
//Hoặc có thể gộp luôn tìm max min trong 1 vòng lặp
minn = A[0];
maxx = A[0]ư;
for(int i = 0; i<n;i++)
{
if(A[i] < minn) minn = A[i];
if(A[i] > maxx) maxx = A[i];
}
printf("\n\nPhan tu max la: %d", maxx);
printf("\nPhan tu min la: %d", minn);
return 0;
}
Mình sẽ viết lại code các hàm nhập mảng, tìm max, tìm min thành các hàm riêng biệt.
- 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 nhập mảng
void nhapMang(int n, int A[]){
for(int i = 0; i<n;i++)
{
printf("A[%d] = ", i);
scanf("%d", &A[i]);
}
}
//Hàm tim max trong mảng
int timMax(int n, int A[]){
int maxx = A[0];
for(int i = 0; i<n;i++)
{
if(A[i] > maxx) maxx = A[i];
}
return maxx;
}
//Ham tim min
int timMin(int n, int A[]){
int minn = A[0];
for(int i = 0; i<n;i++)
{
if(A[i] < minn) minn = A[i];
}
return minn;
}
void timMaxMin(int n, int A[])
{
int maxx = timMax(n, A);
int minn = timMin(n, A);
printf("\n\nPhan tu max la: %d", maxx);
printf("\nPhan tu min la: %d", minn);
}
int main()
{
int n;
int A[100];
printf("Nhap n: ");
scanf("%d", &n);
nhapMang(n,A);
timMaxMin(n,A);
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]