01/10/2018, 16:31

Bài tập truyền mảng 2 chiều vào hàm

Nhập số liệu cho ma trận A kích thước mxn có các phần tử là các số nguyên. Tìm các giá trị cực đại và cực tiểu của các phần tử và chỉ rõ vị trí của chúng trong ma trận.


mình làm thế này:

#include <iostream>
using namespace std;
void nhap(int *A,int &m, int &n)
{
	for (int i=0;i<m;i++)
	{
		for (int j=0;j<n;j++)
		{
			cout << "A[" << i << "][" << j << "] = ";cin >> *(A+i+j);
		}
	}
	
}
void maxmin(int *A, int &m, int &n)
{
	int max=A[0][0],min=A[0][0];
	for (int i=0;i<m;i++)
	{
		for (int j=0;j<m;j++)
		{
			if(A[i][j]>max){max=A[i][j];}
		}
	}

	for (int i=0;i<m;i++)
	{
		for (int j=0;j<n;j++)
		{
			if (A[i][j]<min){min=A[i][j];}
		}
	}
	cout << "max = " << max << endl;
	cout << "vi tri cua max: ";
	for (int i=0;i<m;i++)
	{
		for (int j=0;j<n;j++)
		{
			if (max==A[i][j]){cout << "A[" << i << "][" << j << "]" << "  ";}
		}
	}
	cout << endl;
	cout << "min = " << min << endl;
	cout << "vi tri cua min: ";
	for (int i=0;i<m;i++)
	{
		for (int j=0;j<n;j++)
		{
				if (min==A[i][j]){cout << "A[" << i << "][" << j << "]" << "  ";}
		}
	}
	cout << endl;
}
int main()
{
	int m,n;
	cout << "m = ";cin >> m;
	cout << "n = ";cin >> n;
	int A[m][n];
	nhap(A,m,n);
	maxmin(A,m,n);

	return 0;
}

nhưng nó cứ báo lỗi …
mn giúp mình vs. Cảm ơn nhiều!

Nguyen Hieu viết 18:40 ngày 01/10/2018

Một mảng các con trỏ được dùng để quản lý tập hợp các mảng một chiều này sẽ tạo thành mảng 2 chiều .
int *A[m]; for(int i = 0; i < m; i++) { A[i] = new int[n]; }

+Ở các hàm thì truyền tham số là mảng con trỏ
void nhap(int *A[],int &m, int &n)

+Còn cực tiểu, cực đại thì gộp vào một vòng for thôi, tiết kiệm bớt:
void maxMin(int *A[], int &m, int &n){ int posX1 = 0, posY1 = 0, posX2 = 0,posY2 = 0; int max=A[0][0],min=A[0][0]; for (int i=0;i<m;i++) { for (int j=0;j<n;j++) { if(A[i][j]>max){ max=A[i][j]; posX1 = i; posY1 = j; } if (A[i][j]<min){ min=A[i][j]; posX2 = i; posY2 = j; } } } }
Lần sau đặt câu hỏi thì nhớ ghi cả lỗi gì ra nữa nhé!

minh viết 18:42 ngày 01/10/2018

cảm ơn bạn nhiều!..

Bài liên quan
0