đề bài thế này: Tính tổng đường chéo chính của ma trận và 2 đường chéo chính khác. còn lại các ptử bằng 0; ma trận có dang này: x x x 0 0 x x x 0 0 0 x x x 0 0 0 x x x 0 0 0 x x còn đây là code: #include<iostream.h> #include<math.h> int const max=10; void InputMatrix(int a[][max], int n) { cout<<"\nNhap vao cap cua ma tran = "; cin>>n; for(int i=0;i<=n;i++){ for(int j=0;j<=n;j++){ if(abs(i-j)<=1){ cout<<"\nNhap phan tu ["<<i<<"]["<<j<<"]="; cin>>a[j]; } else a[j]=0; } } } void OutMatrix(int a[][max], int n) { for(int i=0;i<=n;i++){ cout<<"\n"; for(int j=0;j<=n;j++){ cout<<a[j]; } } } void AddMatrix(int a[][max], int b[][max],int c[][max], int n) { for(int i=0;i<=0;i++) { for(int j=0;j<=0;j++){ c[j]=a[j]+b[j]; } } } int main() { int a[max][max],n; int b[max][max],m; int c[max][max]; cout<<"\nNhap ma tran a:"; InputMatrix(a,n); cout<<"\nNhap ma tran b"; InputMatrix(b,m); if(n!=m){ cout<<"2 ma tran khong cong duoc"; } else { AddMatrix(a,b,c,n); cout<<"Ma tran a:\n"; OutMatrix(a,n); cout<<"Ma tran b:\n"; OutMatrix(b,n); cout<<"Xuat ma tran a+b\n"; OutMatrix(c,n); } } Lỗi thì không có, nhưng sao lại khong hiện ra ma trận và còn một số vô lý. nhưng cha biet sua thế nào. Thấy thuật toán cũng đúng mà. Ai pro thi chỉ giáo dùm zới
Mã: void AddMatrix(int a[][max], int b[][max],int c[][max], int n) ma trận c phải là tham truyền để trả về giá trị. thêm dấu & vào đây : int &c[][max] hàm này đọc đã thấy lỗi Mã: void AddMatrix(int a[][max], int b[][max],int c[][max], int n) { for(int i=0;i<=0;i++) { for(int j=0;j<=0;j++){ c[i][j]=a[i][j]+b[i][j]; } i =0 chạy đến 0:rain: ở đây mình không test được, bạn sửa lại thử.
uh, cái i=0 là nhầm đó. sửa lại rồi. hàm addmatrix thì đc rồi, nhưng nhờ bạn xem lại coi thử cái hàm OutMatrix thử xem. sao nó không xuất ra ma trận dc. Mình thấy hàm đó viết đúng mà....
Mã: void OutMatrix([B]int a[][max][/B], int n) cũng như các hàm khác, bạn chưa truyền số phần tử cho mảng 2 chiều: a[max][max] thử xem được không !.
for(int i=0;i<=n;i++) != for(int i=0;i<n;i++). Ngoài ra không cần dòng này: Mã: if(n!=m){ cout<<"2 ma tran khong cong duoc"; Đàng nào m=n mới tính được tống thế sao ko cho nhập n thôi.