Tìm vị trí của phần tử lớn nhất trong dãy A

Viết chương trình nhập mảng N số nguyên. Tìm phần tử lớn nhất và các vị trí của nó trong dãy. Mình làm ra được phần tử lớn nhất và vị trí rồi nhưng không xuất ra được hết tất cả vị trí của phần tử lớn nhất. Mình không biết chỉnh sao cho ra được tất cả vị trí, mình mới bắt đầu học về mảng C thôi qwq.

#include <iostream>;
using namespace std;
int a[100];//mang a co toi da 100 phan tu nguyen
int N;// so phan tu can su dung
int vitrimax[100];//mang vitrimax co toi da 100 phan tu nguyen
//Phan than
int main(){
	cout<<"Nhap so phan tu N (n<=100): ";
	cin>>N;
	for(int i=1;i<=N;i++){
		cout<<"Nhap phan tu thu "<<i<<" : ";
		cin>>a[i];
	}
	
int max=a[1];
	for(int i=2;i<N;i++)
	if (max<a[i])
	{
		max=a[i];
	}
	for(int i=1;i<N;i++)
	if (max==a[i])
	{
		vitrimax=i;
	}
		cout<<"Phan tu lon nhat la "<<max<<" nam o vi tri thu "<<vitrimax;
		
		return 1;
	}

Quay lại tìm thôi bạn :smiley: tất nhiên không cần trở về đầu mảng.

ý bạn là làm thêm một cái vòng lặp nữa sau khi tìm được 1 vị trí?

tìm phần tử lớn nhất trong mảng đã -> trả về giá trị lớn nhất đó -> quay lại mảng so sánh thêm lần nữa với mảng == max thì xuất ra

ko cần dùng đến vòng for thứ 3 đâu ah , khi c tìm dc giá trị max = a[i] rồi c cout<<i ra là được , thứ 2 là tìm max tìm trực tiếp trong hàm main là dc rồi , nếu ko phải viết hàm con rõ ràng ah

Theo mình thì có các lỗi sau:

1.vitrimax bạn không cần khai báo mảng
2.khai báo mảng a có 100 phần tử nhưng nếu N < 100 thì sẽ tốn bộ nhớ
3.khi sử dụng mảng thì bạn nên cho vòng for chạy từ 0
4.max là 1 hàm trong c++ nên không được khai báo nó là biến
Mình sửa lại code như thế này bạn chạy thử đi.

#include <iostream>;
using namespace std;


int main(){
    int N , maxx;// Khai báo số phần tử trong mảng và maxx
    cin >> N; //Nhập vào số N
    int a[N];//Mảng a có N phần tử nhập từ bàn phím

	for(int i = 0;i < N; i++){
		cout<<"Nhap phan tu thu "<<i+1<<" : ";
		cin>>a[i];
	}

    maxx = a[0];
	for(int i = 1; i < N; i++)
	if (maxx < a[i])
	{
		maxx = a[i];
	}
	cout<<"Gia tri lon nhat cua day a la: "<<maxx<< endl;
	cout<<"Cac vi tri cua max la: ";

	for(int i = 0;i < N; i++){
	if (a[i]==maxx)
	{
		cout<<i+1<<" ";
	}
	}
	return 0;
}

Mình cảm ơn mọi người đã giúp đỡ. Nhờ ý kiến của mấy bạn, mình đã viết lại code mới và nó đã chạy thành công. Mình cảm ơn nhiều :smiley:

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