Tìm phần tử nhỏ nhất trong mảng

     

Cách tìm vị trí phần tử lớn nhất, thứ hai, phần tử nhỏ nhất hoặc phần tử bất kì trong mảng một chiều C/C++. Tìm giá trị Max, Min trong dãy số nguyên cho trước.


1. Giới thiệu bài toán

Đây là một dạng bài tập đơn giản nhất dành cho người mới học lập trình. Nó giúp bạn hiểu được cấu trúc, cú pháp và cách sử dụng của ngôn ngữ lập trình đặc biệt là thao tác với mảng một chiều dùng vòng lặp for. Cùng tìm hiểu trong bài viết này nhé!

Đề bài: Tìm vị trí và in ra phần tử lớn nhất, lớn thứ 2 và phần tử nhỏ nhất trong mảng một chiều (dãy số) a có n phần tử, n nhập vào từ bàn phím (2 lập trình khác:

Nhập xuất mảng hai chiều trong C/C++

2. Ý tưởng giải quyết bài toán

Để tìm vị trí phần tử lớn nhất hoặc nhỏ nhất trong một dãy số thực sự rất đơn giản. Ta sẽ cần khai báo thêm 2 biến, một biến để lưu vị trí phần tử cần tìm, biến còn lại để lưu giá trị max (min) đó.

Bạn đang xem: Tìm phần tử nhỏ nhất trong mảng



Xem thêm: Đừng Bỏ Lỡ Mẫu Thiết Kế Nhà 2 Tầng 4X12 Đẹp Chi Phí Thấp, Mẫu Thiết Kế Xây Nhà Ống 2 Tầng 4X12,5M

Trong mảng có thể có các phần tử bằng nhau, ta sẽ coi phần tử xuất hiện trước là phần tử cần tìm nhé!

Khi bắt đầu tiến hành gán phần tử đầu tiên thành phần tử max, min cần tìm sau đó sử dụng vòng lặp for duyệt từ đầu mảng tới cuối mảng. Khi duyệt mảng so sánh từng phần tử với max (min). Nếu phần tử đang duyệt có giá trị thỏa mãn thì ta lưu vị trí phần tử đó vào biến vị trí đồng thời gán nó thành max(min).

Đối với tìm phần tử lớn thứ 2. Thì ta cần khai báo thêm một biến max2, thực hiện như việc tìm phần tử lớn nhất. Tuy nhiên khi tìm được phần tử lớn hơn max, ta gán max2 thành max rồi mới gán max thành phần tử đang duyệt.Bài toán này loại qua trường hợp mảng gồm các phần tử bằng nhau và mảng có 1 phần tử nhé!

3. Code tìm vị trí phần tử lớn nhất, nhỏ nhất C/C++

Cách giải quyết thì mình đã nói ở phần trên, trong phần này mình sẽ share code cho các bạn luôn nhé!

Code mình viết bằng C++ . Nếu các bạn muốn code C thì chỉ cần thay đổi chút câu lệnh nhập xuất là được.

Trong chương trình dưới đây, mình tổng hợp lại tất cả các yêu cầu của bài toán rồi nhé!

// By https://duanromanplaza.vn// Github: https://github.com/duanromanplaza.vn/#includeusing namespace std;// Hàm nhập mảngvoid nhapMang(int a<>, int n){ cout>a;}// Ham tim phan tu max, in ra man hinhvoid timMax(int a<>, int n){int max =a<0>;int vitrimax=0;for(int i=1;imax){max = a;vitrimax=i;}couta<1>){max =a<0>;max2=a<1>;}else{max=a<1>;max2=a<0>;}for(int i=0;imax){max2=max;max=a;}if(amax2)max2=a;}cout>n;}while(n99); // Nhập 2Kết quả chạy chương trình trên:


*

Lời kết

Bài viết trên là một chút kinh nghiệm nho nhỏ mong giúp đỡ bạn bắt đầu việc học tập. Cảm ơn bạn đã quan tâm bài viết của mình. Có thể bạn sẽ cần những bài viết về lập trình C/C++ của mình.


Chuyên mục: