Tìm vị trí phần tử lớn nhất trong mảng 1 chiều?

Chào mọi người, em mới học C và có 1 bài tập : Tìm vị trí phần tử lớn nhất trong mảng, nếu có nhiều phần tử lớn nhất thì chỉ cần tìm phần tử đầu tiên.
Cho em hỏi là cách tìm vị trí của phần tử lớn nhất như thế nào ạ :smiley:

1 Like

Trong 1 dãy số đâu có 2 số lớn nhất đâu bạn, chỉ có 1 số lớn nhất xuất hiện nhiều lần.
Gán max = phần tử đầu tiên, chạy vòng lập rồi tìm max => Lại chạy vòng lập kiểm tra phần tử nào = max thì xuất vị trí, rồi cho dừng vòng lập (break) sẽ được số lớn nhất nằm ở vị trí đầu tiên rùi đó.

Xuất vị trí là xuất cái biến bạn chạy vòng lập nhé.

1 Like

Gán max là phần tử A[0] đầu mảng, dùng for chạy 1 vòng mảng. Phần tử A[i] nào lớn hơn max thì gán max cho A[i], vị trí đó là i và là phần tử thứ i+1 trong mảng.

2 Likes
#include<stdio.h>
int main(){
	int so_nguyen[]={2,5,7,9,6,3,2,1,1};//khai bao mot mang bat ki.
	int max=0,vi_tri=0,dem=0;
	//tim phan tu co gia tri lon nhat trong mang
	for(int i=0;i<sizeof(so_nguyen)/sizeof(int);i++){
		if(so_nguyen[i]>max)
			max=so_nguyen[i];
	}
	//tim vi tri xuat hien lan dau tien cua max va thoat khoi vong lap khi gap max lan dau tien
	for(int i=0;i<sizeof(so_nguyen)/sizeof(int);i++){
		if(so_nguyen[i]==max){
			vi_tri=i+1;
			dem=dem+1;
		}
		if(dem==1)
			break;
	}
	printf("Phan tu lon nhat trong mang da tao co gia tri bang:%d\nXuat hien lan dau tien tai vi tri:so_nguyen[%d]\n",max,vi_tri);
	return 0;
}

Ý tưởng của @Nhanh_Lan_R_ng la chính xác rồi đấy.Đây là code của mình, bạn tham khảo,nếu sai xót j thì fix lại giúp mình.

4 Likes

Vị trí là cái chỉ số i trong mảng đó em. Tìm phần từ max như bình thường và cuối cùng thay vì return A[i]; thì mình return i;

2 Likes

Em cảm ơn mọi người :smiley:

e tưởng vị trí là i+1 ạ?

Cái này 5 năm trước mà ://

kệ. trả lời giúp tớ đi. giờ ms bắt đầu học C

Đúng là i+1 :smiley: nhưng 1 for thôi.

if(numbers[i] > max) {
   max = numbers[i];
   vi_tri = i+1;
}
2 Likes

Mình không học C, chủ yếu học High-level thôi. Low-level thì ngu hết chỗ nói :expressionless:

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

hay b qua wall mình xem giúp 1 bài mk vừa đăng đc k bạn^^

Ở đây ko phải Facebook bạn :smiley: nên ko có wall.

1 Like

Cảm ơn bạn nhiều nhé <3

chạy 2 vòng lặp for để sắp xếp mảng từ lớn đến nhỏ. Phần tử lớn nhất là arr[0]

Cần có 1 số mà xếp làm gì :smiley:

4 Likes

Chơi zậy cho nhanh…

Sort sẽ làm mất vị trí, mà đề lại yêu cầu tìm vị trí cơ mà :neutral_face:

3 Likes

This topic was automatically closed after 3 days. New replies are no longer allowed.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?