Viết hàm tìm địa chỉ của phần tử lớn nhất trong một mảng cho trước

Mọi người cho mình hỏi làm sao để tìm địa chỉ của phần tử lớn nhất trong một mảng.Mình đã code để in ra phần tử lớn nhất rồi nhưng ko code được để in ra địa chỉ của phần tử đó.Mình cũng đã cho hiện từng địa chỉ của các phần tử trong mảng đó,sau đó mình viết một hàm để code ra địa chỉ của phần tử lớn nhất,nhưng kết quả in ra lại không trùng nhau.Mong mọi người giúp đỡ.Thanks all.đây là code của mình,không biết sai chỗ nào

#include<iostream>
#include<iomanip>
#include<conio.h>
using namespace std;

//Khai bao ham
void max(int *p,int N);
void main()
{
	int a[100];
	int N,i;
	char c;
	do{
	cout<<"\nNhap vao so phan tu thuc su cua mang:";
	cin>>N;
	//nhap vao gia tri cac phan tu cua mang
	for( i=0;i<=N-1;i++)
		{cout<<"\na["<<i<<"]= ";
	cin>>a[i];}
	//Hien thi mang vua nhap
	cout<<"\nMang vua nhap la:"<<endl;
	for(i=0;i<=N-1;i++)
		cout<<setw(5)<<a[i];
  //in ra dia chi cac phan tu cua mang a
	
	for(i=0;i<=N-1;i++)
	cout<<"\nDia chi phan tu a["<<i<<"] la:"<<&a[i];
	
	//su dung ham
	max(a,N);

	cout<<"\nBan co muon tiep tuc khong:(Y/N)"<<endl;
	c=getch();
	}while(c=='Y'||c=='y');
	
	
}
//Dinh nghia ham tim gia tri lon nha cua mot mang
void max(int *p,int N)
{int max,i;

	max=p[0];
	for( i=1;i<=N-1;i++)
	{
		if(max<p[i])
		
		max=p[i];
		
		}
	

	cout<<"\nGia tri phan tu lon nhat cua mang la:"<<max<<endl;
	if(max==p[0])
		cout<<"\nDia chi phan tu lon nhat cua mang la:"<<p;
	if(max==p[i])
		cout<<"\nDia chi phan tu lon nhat cua mang la:"<<p+i;

}

Em đọc bài này rồi sửa lại code cho dễ nhìn trước đi.

em sửa lại rồi đó anh, anh cho em hỏi là tìm địa chỉ của phần tử lớn nhất trong mảng thì làm thế nào vậy ạ

Anh sửa đó, em sửa sai rồi, anh đã xóa bài em sửa sai, em kiểm tra tin nhăn, anh có hướng dẫn cách sửa bài ở đó rồi.

1 Like

post lỗi sai cho mọi người tham khảo đi anh

1 Like

Em dùng 1 biến làm cờ, ở đây biến đó a tạo ra là: diachi

//Dinh nghia ham tim gia tri lon nha cua mot mang
void max(int *p,int N)
{
    int max,i;
    int diachi; // dia chi cua vi tri lon nhat
    max=p[0];
    diachi =0; // khoi tao = 0
    for( i=1; i < N; i++)
    {
        if(max<p[i])
        {
            max=p[i];
            diachi = i; // luu lai vi tri do
        }
    }

    cout<<"\nGia tri phan tu lon nhat cua mang la:"<<max<<endl;
    cout<<"\nDia chi phan tu lon nhat cua mang la:"<<p+diachi;
}

Gợi ý cách viết code

Viết thế này hay hơn

for( i=0; i< N; i++)

Vâng,em đã hiểu,cảm ơn anh đạt nhiều nhé.heheh

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