Tìm phần tử lớn nhất, nhỏ nhất trong mảng C/C++ – https://final-blade.com

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 thuầ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 từ lập trình đặc biệt quan trọng là thao tác với mảng một chiều dùng vòng lặp for. Cùng khám phá 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
Các bài viết tương quan đến lập trình khác :

  • Sắp xếp mảng một chiều tăng dần, giảm dần
  • 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 thuầ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 ) đó. Trong mảng hoàn toàn có thể có những phần tử bằng nhau, ta sẽ coi phần tử Open trước là phần tử cần tìm nhé !
Khi mở màn thực thi gán phần tử tiên phong 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 nhu cầu 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 những bạn muốn code C thì chỉ cần biến hóa 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 toàn bộ những nhu yếu của bài toán rồi nhé !

// By https://final-blade.com
// Github: https://github.com/duongdinh24/

#include
using namespace std;

// Hàm nhập mảng
void nhapMang(int a[], int n){
    cout<<"Nhap mang: "<>a[i];
}


// Ham tim phan tu max, in ra man hinh
void timMax(int a[], int n){
	int max =a[0];
	int vitrimax=0;
	
	for(int i=1;imax){
			max = a[i];
			vitrimax=i;
		}
	cout<<"Max = "<a[1]){
		max =a[0];
		max2=a[1];
	}
	else{
		max=a[1];
		max2=a[0];
	}
	
	for(int i=0;imax){
			max2=max;
			max=a[i];
		}
		if(a[i]max2)
			max2=a[i];
	}
	cout<<"\nPhan tu lon thu hai la: "<>n;
	}
	while(n<2 || n>99); // Nhập 2
Kết quả chạy chương trình trên :
tim phan tu lon thu hai trong mang

Lời kết

Bài viết trên là một chút ít kinh nghiệm tay nghề nho nhỏ mong giúp sức bạn khởi đầu việc học tập. Cảm ơn bạn đã chăm sóc 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 . Chúc bạn thành công xuất sắc !