01/10/2018, 11:32

Nhờ mọi người giúp đỡ debug và sữa lỗi

#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);
}
Tao Không Ngu. viết 13:42 ngày 01/10/2018

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);
}
new viết 13:41 ngày 01/10/2018

chạy lỗi mà b

Tao Không Ngu. viết 13:36 ngày 01/10/2018

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

stackoverflow.com
user20844

How do I declare a 2d array in C++ using new?

c++, arrays, multidimensional-array, dynamic-allocation
asked by user20844 on 08:42PM - 01 Jun 09

new viết 13:34 ngày 01/10/2018

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

Tao Không Ngu. viết 13:32 ngày 01/10/2018
#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.

new viết 13:37 ngày 01/10/2018

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

Dark.Hades viết 13:35 ngày 01/10/2018

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);
}
new viết 13:45 ngày 01/10/2018

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

Bài liên quan
0