Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    xin chỉ em tại sao chương trình này lại bị lỗi

    em có đoạn code thực hiện cộng trừ 2 ma trận sử dụng "conio.h"using namespace std;class matrix{priva te: int m; int n; int x[][20];public: matrix(); matrix (int a,i nt b); void nhapmt(); void xuatmt (); void congmt (const matrix &a,const matrix &b); void trumt (const matrix &a,const matrix &b);};matrix::matrix(){ m =1; n=1; x[0][0]=0;}matrix::matrix(int a,int b){ m=a; n=b;}void matrix::nhapmt(){ int i,j; cout << " nhap n: "; cin >>n; cout << "nhap m: "; cin >>m; for (i=0;i<n;i++) for (j=0;j <m;j++) { co ut <<"x["<<i<<"]["<<j<<"]= "; cin >>x[i][j]; }}void matrix::xuatmt(){ for (int i=0;i<n;i++) { fo r (int j=0;j<m;j++) cout << x[i][j]<<" "; cout <<"
    "; }}void matrix::congmt(const matrix &a ,const matrix &b){ if (a.m != b.m || a.n != b.n) cout << "k hong thuc hien cong duoc vi ma tran khong cung cap "; else { m=a.m; n=a.n; int i,j; for (i=0;i<m;i++) for (j=0;j<n;j++) x[i][j]=a.x[i][j]+b.x[i][j]; cout <<"
    ma tran moi cong duoc la:
    "; }}void matrix::trumt(const matrix &a, const matrix &b){ if (a.m!=b.m || a.n != b.n) cout << "
    khong thuc hien tru duoc vi ma tran khon g cung cap "; else { m=a.m ; n=a.n; int i,j; for (i=0;i<m;i++) for (j=0;j<n;j++) x[i][j]=a.x[i][j]-b.x[i][j]; cout <<"
    ma tran moi tru duoc la:
    "; }}void main (){ matrix p,q,r,h ; cout <<"
    nhap ma tran p:
    "; p.nhapmt(); cout <<"
    nhap ma tran q:
    "; q.nhapmt(); cout << "ma tran p vua nhap:
    "; p.xuatmt(); cout << "ma tran q vua nhap:
    "; q.xuatmt(); r.congmt(p,q); r.xuatmt(); h.trumt(p,q); h.xuatmt( ); getch();}

    [/PHP]VD như em nhập mảng p là [2][3], q cũng là [2][3] nhưng sau khi chạy chương trình thì lại bị thay đổi kích thước của ma trận p thành [2][7]. em mới bắt đầu học nên cũng chưa hiểu rõ lắm, anh chi nào biết có thể chỉ dùm em với nha

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn coi lại đoạn này

    for (i=0;i<m;i++)
    for (j=0;j<n;j++)
    Bị ngược chiều m n rồi kìa

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •