Tìm phần tử max min trong mảng lập trình C/C++

Tìm max min trong mang

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.

#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]