30/09/2018, 16:26

Lỗi khi nhân ma trận?

Chương trình nhân 2 ma trận dùng bộ nhớ động nhưng bị lỗi. t sửa mãi mà ko đc. bạn nào giúp vs.

#include <iostream>
using namespace std;

void InputMatrix(int **A,int &r, int &c,char &symbol){
	A= new int *[r];
	if (A==NULL) cout <<"khong du bo nho de cap phat";
	else {
		for (int i=0;i<r;i++){
			A[i]= new int [c];
			if (A[i]==NULL){ 
				cout <<"khong du bo nho"<<endl;
				break;
			}
			else{
				for (int j=0;j<c;j++){
					cout << symbol<<"["<<i+1<<"]["<<j+1<<"]= ";
					cin >> A[i][j];
				}
			}
		
		}
	
	}
			
void NhanMatrix(int **A,int **B, int **C,int &r1, int &c1,int &r2,int &c2){
	if (c1!=r2) cout << "khong the nhan 2 ma tran"<<endl;
	else{
		for (int i=0; i<r1;i++){
			for (int j=0; j<c2; j++){
				C[i][j]=0;
				for (int k=0; k<r2;k++){
					C[i][j] += A[i][k] * B[k][j];
				}
			}
		}
		
	}
	
}

void DisplayMatrix(int **A,int &r, int &c){
	for (int i=0;i<r; i++){
		for (int j=0;j<c;j++){
			cout << A[i][j] <<" ";
		}
		cout <<endl;
	}
}

void FreeMatrix(int **A, int &r){
	for (int i=0; i<r, i++){
		delete [] A[i];
	}
	delete A;
} 

int main (){
	int r1,r2,c1,c2;
	int **A, **B, **C;
	
	cout << "nhap so hang cua ma tran A: "; cin >>r1;
	cout << "nhap so cot cua ma tran A: "; cin >> c1;
	cout << "nhap so hang cua ma tran B: "; cin >>r2;
	cout << "nhap so cot cua ma tran B: "; cin >>c2;
	
	InputMatrix(A,r1,c1,'A');  // nhap ma tran A
	InputMatrix(B,r2,c2,'B');  // nhap ma tran B
	
	
	cout << "ma tran A la"<<endl;
	DisplayMatrix(A,r1,c1);
	cout << "ma tran B la"<<endl;
	DisplayMatrix(B,r2,c2);
	
	NhanMatrix(A,B,C,r1,c1,r2,c2);
	
	cout<< "tich 2 ma tran la: "<< endl;
	DisplayMatrix (C,r1,c2);
	
	FreeMatrix(A,r1);
	FreeMatrix(B,r2);
	
	system ("pause");
	return 0;
}
TranPhuong viết 18:31 ngày 30/09/2018

chương trình nhân 2 ma trận dùng bộ nhớ động nhưng bị lỗi. t sửa mãi mà ko đc. bạn nào giúp vs.

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

Báo trước với @TranPhuong là mấy câu hỏi dạng này khó có câu trả lời lắm, bởi vì @TranPhuong không đưa ra được cụ thể mình đang làm gì. Chỉ post code suông lên và hỏi khó có câu trả lời.

Là một lập trình viên chuyên nghiệp Đạt tích lũy được kinh nghiệm lập trình thông qua nhiều năm tự học và làm việc. Quá trình tự học đó kéo dài, nhưng chung quy lại việc học lập trình bao gồm các quá trình tìm hiểu(1) => thắc mắc(2) => hỏi(3) => thảo luận(4) => hiểu(5) => thực nghiệm(6) => hướng dẫn ngược trở lại(7). Đối với nhưng người mới học lập trình 1 năm thì việc học sẽ dừng lại ở mức thắc mắc(2) hoặc mức hỏi(3). Ở mức độ thắc mắc(2) nếu người học lập trình bỏ cuộc mà không đi tìm hiểu th…
Là một lập trình viên chuyên nghiệp Đạt tích lũy được kinh nghiệm lập trình thông qua nhiều năm tự học và làm việc. Quá trình tự học đó kéo dài, nhưng chung quy lại việc học lập trình bao gồm các quá trình tìm hiểu(1) => thắc mắc(2) => hỏi(3) => thảo luận(4) => hiểu(5) => thực nghiệm(6) => hướng dẫn ngược trở lại(7). Khi đạt đến bước (3)hỏi thì bạn đã thở phào nhẹ nhõm, pha một ly cafe rung đùi chờ câu trả lời được rồi chứ. Nhầm to rồi, không có gì là miễn phí cả. Hãy tiếp tục bằng cách thảo lu…
TranPhuong viết 18:37 ngày 30/09/2018

em chưa post xong mà.

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

Vậy @TranPhuong dùng thêm tính năng edit post để edit bài viết của mình đi

P/S: Với thông tin như thế này có vẻ hơi ít cho nhiêu đó code

chương trình nhân 2 ma trận dùng bộ nhớ động nhưng bị lỗi. t sửa mãi mà ko đc. bạn nào giúp vs.

TranPhuong viết 18:39 ngày 30/09/2018

em bị lỗi ở hàm nhân ma trânh mà ko hiểu bị lỗi gì nên ms lên đây hỏi mà.

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

em bị lỗi ở hàm nhân ma trânh mà ko hiểu bị lỗi gì nên ms lên đây hỏi mà.

Ừ anh hiểu, anh chỉ muốn hiểu rõ thêm, như thế nào là bị lỗi. Lỗi compile, hay lỗi lúc chạy?

Code em gửi anh không compile được nữa là

TranPhuong viết 18:33 ngày 30/09/2018

lỗi lúc dịch ý ạ. chả hiểu sao cứ bị lỗi ở hàm NhanMatrix.

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

Code này em copy ở đâu ra vậy? Có phải là em code không?

lỗi lúc dịch ý ạ. chả hiểu sao cứ bị lỗi ở hàm NhanMatrix.

Nó còn bị nhiều lỗi hơn là chỉ ở hàm NhanMatrix, và có vẻ như code này không phải do em viết. Tất cả những lối anh nhìn thấy cho tới hiện giờ là lỗi cú pháp. Lỗi cú pháp tức là lỗi cơ bản của việc viết code. Chứ không phải lỗi do logic mà thành.

TranPhuong viết 18:41 ngày 30/09/2018

em tự viết. nhưng ns thật là cái phần con trỏ của con trỏ em chưa hiểu lắm.

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

Nếu là em tự viết thì anh khuyên em hãy bắt đầu lại với những bài tập đơn giản hơn. Cái em đang tập viết ở đây giống như em đang tập xây một ngôi nhà trong khi em kỹ năng của em chỉ ở mức xây dựng lâu đài cát.

Nếu em cứ học thế này sẽ chán lập trình đấy.

TranPhuong viết 18:27 ngày 30/09/2018

Hic. chắc vậy. tại em học C chứ ko có học C++.

TranPhuong viết 18:40 ngày 30/09/2018

oh. e cảm ơn. :)). thế để e bắt đầu lại vậy.

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

Anh nói thế không phải vì em dở, mà vì em sai nhiều lỗi cơ bản quá. Để khắc phục nó thì em phải nắm cơ bản đã. Bởi vì anh có sửa hết cả bài cho em thì em cũng không giải quyết được vấn đề cơ bản nhất là hiểu được cách lập trình C++.

TranPhuong viết 18:27 ngày 30/09/2018

vâng. e hiểu mà. cơ mà sao em post nhỏ hơn 20kí tự lại ko đc nhỉ?

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

Bởi vì diễn đàn mình chú trọng đến thảo luận. Mỗi reply phải truyền đạt một ý nghĩa nào đấy. Nếu đơn giản là đồng ý với comment của anh thì em có thể bấm Like là được rồi

Chúc em học tốt nhé

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

Topic đã giải quyết được vấn đề của nó, mặc dù không trả lời được câu hỏi của người hỏi. Nhưng đã hướng được một hướng đi mới. Close để tránh loãng mục tiêu của topic.

This topic is now closed. New replies are no longer allowed.

Bài liên quan
0