Nhờ giúp đỡ debug và sửa lỗi code ma trận

#include <iostream>

using namespace std;

struct matran
{
	int hang,cot;
	float *heso;
};

void nhap (matran &mt1, matran &mt2) {
	cin>>mt1.hang>>mt1.cot;
	cout<<mt1.hang<<" "<<mt1.cot;
	mt1.heso =new float [mt1.hang][mt1.cot]
	mt2.heso= new float [mt1.hang][mt1.cot];
	for (int i=0;i<mt1.hang;i++) {
		for (int j=0;j<mt1.cot;i++) {
			cin>>mt1.heso[i][j];
		}
	}
}
main () {
	matran mt1,mt2;
	nhap(mt1,mt2);
}

Code lỗi ở chỗ nó lỗi đó. Bạn xem ky lại xem. Mình sửa lại rồi bạn xem có chạy được không

#include <iostream>

using namespace std;

struct matran
{
	int hang,cot;
	float *heso;
};

void nhap (matran &mt1, matran &mt2) {
	cin>>mt1.hang>>mt1.cot;
	cout<<mt1.hang<<" "<<mt1.cot;
	mt1.heso =new float [mt1.hang][mt1.cot]
	mt2.heso= new float [mt1.hang][mt1.cot];
	for (int i=0;i<mt1.hang;i++) {
		for (int j=0;j<mt1.cot;i++) {
			cin>>mt1.heso[i][j];
		}
	}
}
main () {
	matran mt1,mt2;
	nhap(mt1,mt2);
}
1 Like

chạy lỗi mà b

Mình quên mất mảng 2 chiều không cấp phat như vậy được.

1 Like

sửa hộ mình đoạn trên được k…nhập ma trận cỡ m*n

#include <iostream>

using namespace std;

struct matran
{
	int hang,cot;
	float *heso;
};

void nhap (matran &mt1, matran &mt2) {
	cin>>mt1.hang>>mt1.cot;
	cout<<mt1.hang<<" "<<mt1.cot;
	mt1.heso =new float [mt1.hang * mt1.cot];
	mt2.heso= new float [mt1.hang * mt1.cot];
	for (int i=0;i<mt1.hang;i++) {
		for (int j=0;j<mt1.cot;j++) {
			cin>>mt1.heso[i * j];
		}
	}
}
main () {
	matran mt1,mt2;
	nhap(mt1,mt2);
}

Đã sửa.

b thử chạy xem…chạy ma trận 3*3 nó k kết thúc bước nhập

Sao không dùng vector cho tiện.
Vì bạn cấp phát mảng 1 chiều nên không thể dùng mt[i][j] được
Mảng 1 chiều cho ma trận dạng 2 chiều thì phải tính toán vị trí nhập vào.

#include <iostream>

using namespace std;

struct matran
{
	int hang,cot;
	float *heso;
};

void nhap (matran &mt1, matran &mt2) {
	cin>>mt1.hang>>mt1.cot;
	cout<<mt1.hang<<" "<<mt1.cot << endl;
	mt1.heso =new float [mt1.hang * mt1.cot];
	mt2.heso= new float [mt1.hang * mt1.cot];
	for (int i=0;i<mt1.hang;i++) {
		for (int j=0;j<mt1.cot;j++) {
      int f = i * 2 + j;
			cin>>mt1.heso[f];
      cout << f << " " << mt1.heso[f] << endl;
		}
	}
}
int main () {
	matran mt1,mt2;
	nhap(mt1,mt2);
}
1 Like

tks bro.mình hiểu r,…

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