
Tìm giá trị lớn nhất trong mảng 1 chiều
Trong bài này chúng ta sẽ cùng nhau phân tích và giải quyết bài toán liên quan đến việc tìm giá trị lớn nhất trong mảng 1 chiều nhé. Có nhiều cách để làm bài này, có thể kể đến như:
- Sắp xếp mảng theo thứ tự tăng dần rồi chọn phần tử cuối cùng của mảng.
- Sắp xếp theo thứ tự tăng dần rồi chọn phần tử đầu tiên của mảng.
- Duyệt mảng với một vòng lặp đơn và tìm phần tử lớn nhất.
Nội dung này sẽ làm theo cách thứ 3 kể trên. Gọi mảng cần xét là a[], chỉ số phần tử là i. Các bước thực hiện gồm:
- Bước 1: Khởi tạo biến max lưu giá trị lớn nhất và gán cho nó phần tử đầu tiên của mảng
- Bước 2: Dùng vòng lặp để duyệt các phần tử mảng còn lại, từ phần tử thứ 2 đến hết mảng:
- Bước 2.1: Nếu phần tử thứ i nào đó có giá trị lớn hơn max, cập nhật lại giá trị max = a[i]
- Bước 2.2: Nếu không có thì bỏ qua
- Bước 3: Kết luận giá trị lớn nhất trong mảng trên
#include <stdio.h> #define MAX 200 // khai bao ham nguyen mau void nhapMang(int* a, const int n); double timMax(const int* a, const int n); int main() { int a[MAX]; // mang kieu double int n; // so phan tu thuc te cua mang printf("Nhap so phan tu mang > 0: "); scanf("%d", &n); if(n > 0) { // neu so phan tu mang la so duong nhapMang(a, n); // goi ham nhap mang int max = timMax(a, n); // goi ham tim max printf("max = %d\n", max); } else { puts("Vui long nhap so phan tu mang > 0!"); } return 0; } // dinh nghia ham nhap mang void nhapMang(int* a, const int n) { int i; // bien chi so phan tu mang for(i = 0; i < n; i++) { // nhap cac phan tu cho mang printf("a[%d] = ", i); scanf("%d", &a[i]); // doc phan tu thu i vao tu ban phim } // xong viec nhap mang } // dinh nghia ham tim max double timMax(const int* a, const int n) { int i; // bien chi so phan tu mang int max = a[0]; // gia su ban dau a[0] la max for(i = 1; i < n; i++) { // tim phan tu max khac trong mang if(a[i] > max) { // neu a[i] > max => cap nhat max max = a[i]; // gan a[i] cho max } } return max; // tra ve ket qua max }
3 Comments
không hiểu lắm
int* có khác int không a
int* là khai báo con trỏ kiểu int, int là khai báo biến thông thường kiểu int. chi tiết e xem lại trong các bài học về kiểu dữ liệu và con trỏ