Bài 43. Tìm số nhỏ nhất, lớn nhất trong mảng
This entry is part 41 of 69 in the series Học C Không Khó
Bài toán: Nhập vào mảng một chiều. Hãy tìm số lớn nhất trong mảng, tìm số nhỏ nhất trong mảng.
- Input
-
11 3 5 9 15
- Output
-
12Min : 1Max : 15
Viết chương trình tìm số lớn nhất trong mảng
Để tìm số lớn nhất trong mảng ta thực hiện các bước như sau
- Khởi tạo giá trị
max=a[0]
- Duyệt lần lượt các phần tử của mảng. Nếu phần tử nào có giá trị lớn max thì ta tiến hành gán giá trị đó cho max.
- Sau khi duyệt hết các phần tử của mảng thì ta tiến hành trả về giá trị của max
- Hàm
max
sẽ có kiểu trả về là kiểu int (hoặc kiểu long cũng được ). - Cần có hai tham số truyền vào là: tên mảng và số lượng phần tử.
Code tham khảo cách viết hàm tìm giá trị lớn nhất trong mảng như sau
1 2 3 4 5 6 7 8 |
int max(int a[], int n) { int max = a[0]; for (int i = 1; i < n; i++) if (max < a[i]) max = a[i]; return max; } |
Viết chương trình tìm số nhỏ nhất trong mảng
Tương tự như trên ta cũng làm lần lượt các bước
- Khởi tạo giá trị
min=a[0]
- Duyệt lần lượt các phần tử của mảng. Nếu phần tử nào có giá trị nhỏ hơn min thì ta tiến hành gán giá trị đó cho min.
- Sau khi duyệt hết các phần tử của mảng thì ta tiến hành trả về giá trị của min.
- Hàm
min
sẽ có kiểu trả về là kiểu int (hoặc kiểu long cũng được ). - Cần có hai tham số truyền vào là: tên mảng và số lượng phần tử.
Code tham khảo cách viết hàm tìm giá trị nhỏ nhất như sau
1 2 3 4 5 6 7 8 |
int min(int a[], int n) { int min = a[0]; for (int i = 1; i < n; i++) if (min > a[i]) min = a[i]; return min; } |
Sau khi viết được hai hàm tính min, max thì chương trình của chúng ta đã có thể giải quyết được bài toán ở trên.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <stdio.h> void nhap(int a[], int n) { for (int i = 0; i < n; i++) { printf("Nhap vao phan tu a[%d]: ", i); scanf("%d", &a[i]); } } int max(int a[], int n) { int max = a[0]; for (int i = 1; i < n; i++) if (max < a[i]) max = a[i]; return max; } int min(int a[], int n) { int min = a[0]; for (int i = 1; i < n; i++) if (min > a[i]) min = a[i]; return min; } int main() { int a[1000]; int n; printf("\nNhap n = "); scanf("%d", &n); nhap(a, n); printf("\nMax = %d", max(a, n)); printf("\nMin = %d", min(a, n)); return 0; } |
1 2 3 4 5 6 7 8 |
Nhap n = 5 Nhap vao phan tu a[0]: 12 Nhap vao phan tu a[1]: 16 Nhap vao phan tu a[2]: 19 Nhap vao phan tu a[3]: 32 Nhap vao phan tu a[4]: 14 Max = 32 Min = 12 |
Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi! Theo dõi lập trình không khó tại: