Tìm phần tử max min trong mảng lập trình C/C++
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]