Tìm số lớn nhất trong mảng C/C++ – https://final-blade.com

Bài toán tìm số lớn nhất, nhỏ nhất trong mảng C/C++ là bài toán thường gặp. Đây là bài toán giúp bạn luyện tập rất tốt ngôn ngữ lập trình C/C++.

Bài viết chữa bài tập số 9 trong chuỗi bài tập làm chủ ngôn ngữ C/C++ .

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

Bài toán tìm số lớn nhất, luôn là bài toán hay cho các bạn mới học lập trình.

Đề bài :

Viết hàm trả về giá trị và chỉ số của phần tử lớn nhất trong mảng 1 chiều a có n phần tử.

Mình nhìn nhận đây là bài toán ở mức đơn thuần, hầu hết những bạn đều hoàn toàn có thể làm được .

2. Giải quyết bài toán

2.1 Ý tưởng giải quyết

Chúng ta sẽ viết hàm ( FindMax ) để xử lý bài toán này .
Ý tưởng :

  • Khai báo hai biến Max và biết Location (chỉ số, vị trí)
  • Gán Max là phần tử đầu tiên của mảng (a[0]), gán Location =0.
  • Cho vòng for duyệt từ phần tử thứ 2 đến cuối mảng, nếu gặp phần tử lớn hơn Max, ta gán Max bằng phần tử đó, Location = vị trí của phần tử đó
  • Cuối cùng in ra kết quả Max và Location

Thật đơn thuần phải không nào !

2.2 Code C/C++ tìm số lớn nhất trong mảng

Dựa theo ý tưởng mình trình bày ở trên, mình viết hàm FindMax sau:

Code C :

void FindMax(int a[], int n){
	int Max, Location;
	Max=a[0];
	Location =0;
	for(int i=1;iMax){
			Max=a[i];
			Location=i;
		}
	}
	
	printf("\nPhan tu Max: %d", Max);
	printf("\nChi so cua phan tu Max: %d", Location);
}

Code C++:

void FindMax(int a[], int n){
	int Max, Location;
	Max=a[0];
	Location =0;
	for(int i=1;iMax){
			Max=a[i];
			Location=i;
		}
	}
	
	cout<<"\nPhan tu Max: "<Thật ra, ngôn từ lập trình C + + là tăng cấp của ngôn từ lập trình C. Do đó, những cấu trúc tương đối giống nhau, chỉ khác câu lệnh nhập xuất ra màn hình hiển thị thôi .

2.3 Chương trình tìm số lớn nhất trong C/C++

Mính sẽ thêm phần nhập xuất mảng và một số cấu trúc mặc định của ngôn ngữ là thành chương trình theo bài yêu cầu.

Code C :
#include
void nhap(int a[], int &n){
	do{
		printf("Nhap n: ");
		scanf("%d",&n);
	}
	while(n<2||n>99);
	
	for(int i=0; iMax){
			Max=a[i];
			Location=i;
		}
	}
	
	printf("\nPhan tu Max: %d", Max);
	printf("\nChi so cua phan tu Max: %d", Location);
}
int main(){
	int a[100];
	int n;
	nhap(a,n);
	xuat(a,n);
	FindMax(a,n);
	return 0;
}

Code C + + :

#include
using namespace std;
void nhap(int a[], int &n){
	do{
		cout<<("Nhap n: ");
		cin>>n;
	}
	while(n<2||n>99);
	for(int i=0; i>a[i];
	}
}

void xuat(int a[], int n){
	cout<<"Mang vua nhap la:\n";
	for(int i=0;iMax){
			Max=a[i];
			Location=i;
		}
	}
	
	cout<<"\nPhan tu Max: "<Xong rồi. Kết quả của việc chạy chương trình bên trên đây :
tim so lon nhat trong mang code C 2
Bài viết đến đây là hết, càm ơn bạn đã chăm sóc bài viết của mình. Đừng bỏ lỡ những bài tập C / C + + tiếp theo nhé !

Xem tiếp Bài 10: Tìm số nhỏ nhất trong mảng

Xem lại bài 8: Hàm tính trung bình các số lẻ và chia hết cho 5

Tải về file đề cương 67 bài tập lập trình C/C++

Mọi vấn đề thắc mắc trong quá trình tham khảo bài viết, bạn đọc vui lòng comment xuống phía dưới bài viết để mình hỗ trợ.

Rất mong nhận được các ý kiến đóng góp của mọ người để bài chia sẻ của mình hoàn thiện hơn.