30/09/2018, 15:59

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<<"
Nhap 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<<"
a["<<i<<"]= ";
	cin>>a[i];}
	//Hien thi mang vua nhap
	cout<<"
Mang 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<<"
Dia chi phan tu a["<<i<<"] la:"<<&a[i];
	
	//su dung ham
	max(a,N);

	cout<<"
Ban 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<<"
Gia tri phan tu lon nhat cua mang la:"<<max<<endl;
	if(max==p[0])
		cout<<"
Dia chi phan tu lon nhat cua mang la:"<<p;
	if(max==p[i])
		cout<<"
Dia chi phan tu lon nhat cua mang la:"<<p+i;

}
Nguyễn Minh Dũng viết 18:05 ngày 30/09/2018

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

Dạy Nhau Học

Cách post Code dùng Markdown trong Category Programming

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void...

Reading time: 2 mins

Alex Le viết 18:09 ngày 30/09/2018

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 ạ

Nguyễn Minh Dũng viết 18:00 ngày 30/09/2018

em sửa lại rồi đó anh

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.

minh tran viết 18:06 ngày 30/09/2018

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

Nguyễn Minh Dũng viết 18:02 ngày 30/09/2018

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

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

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

for( i=0; i< N; i++)
Alex Le viết 18:00 ngày 30/09/2018

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

Bài liên quan
0