Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Bài tập C | tính tích 2 ma trận, sửa giúp mình với?

  1. #1
    Ngày gia nhập
    05 2009
    Nơi ở
    HCM
    Bài viết
    64

    Mặc định Bài tập C | tính tích 2 ma trận, sửa giúp mình với?

    HTML Code:
    #include<iostream> #include<conio.h> #define max 100 using namespace std; void nhapmatran(int a[max][max],int &n,int &m) { cout<<"nhap so dong";cin>>n; cout<<"nhap so cot";cin>>m; for(int i=0;i<=n-1;i++) for(int j=0;j<=m-1;j++) { cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j]; } } void xuatmatran(int a[max][max],int n,int m) { for(int i=0;i<=n-1;i++) for(int j=0;j<=m-1;j++) { cout<<a[i][j]<<"\t"; } cout<<endl; } void induongcheochinh(int a[max][max],int n,int m) { int d; if(n<m) d=n; else d=m; for(int i=0;i<=d-1;i++) cout<<a[i][i]<<"\t"; } void tongmatran(int a[max][max],int b[max][max],int c[max][max],int n,int m) { for(int i=0;i<=n-1;i++) for(int j=0;j<=m-1;j++) { c[i][j]=a[i][j]+b[i][j]; cout<<c[i][j]; cout<<"\t"; } } void tinhtichmatran(int a[max][max],int b[max][max],int c[max][max],int na,int ma, int nb,int mb,int k) { for(int i=0;i<=na-1;i++) for(int j=0;i<=mb-1;j++) for(int k=0;i<=ma-1;k++) { c[i][j]=0; c[i][j]+=a[i][k]*b[k][j]; cout<<c[i][j]; } cout<<endl; } void main() { int a[max][max], b[max][max], c[max][max],na,ma,nb,mb; nhapmatran(a,na,ma); nhapmatran(b,nb,mb); if(na==nb&&ma==mb) { tongmatran(a,b,c,na,ma); cout<<"ma tran tong:\n"; xuatmatran(c,na,ma); } else cout<<"khong tinh duoc ma tran tong"; if(ma==mb) { tinhtichmatran(a,b,c,na,mb); cout<<"\nma tran tich:\n"; xuatmatran(c,na,mb); } else cout<<"khong tinh duoc tich"; getch(); }

  2. #2
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Sửa chỗ này
    C++ Code:
    1. void tinhtichmatran(int a[max][max],int b[max][max],int c[max][max],int na,int ma, int nb,int mb)
    2. {
    3.     int k;
    4.     for(int i=0;i<=na-1;i++)
    5.         for(int j=0;i<=mb-1;j++)
    6.             for(k=0;i<=ma-1;k++)
    7.             {
    8.                 c[i][j]=0;
    9.                 c[i][j]+=a[i][k]*b[k][j];
    10.                 cout<<c[i][j];
    11.             }
    12.             cout<<endl;
    13. }
    14. void main()
    15. {
    16. ///////////
    17.         tinhtichmatran(a,b,c,na,ma,nb,mb); /// Sửa
    18. ///////
    19. }
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    69

    Mặc định cho em hỏi

    Cho em hỏi một điều! Là ở trong bài này...trong các hàm nhập khi tại sao các biến a,b,c khi ra khỏi hàm vẫn giử được giá trị khi nhập mặc dù các hàm này truyền theo tham trị. Em chưa hiểu về vấn đề này lắm...hay em có chỗ nào sai...mong anh chị giúp cho vấn đề này

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi teodainhan Xem bài viết
    Code:
    void tinhtichmatran(int a[max][max],int b[max][max],int c[max][max],int na,int ma, int nb,int mb,int k)
    {
    	for(int i=0;i<=na-1;i++)
    	for(int j=0;i<=mb-1;j++)
    	for(int k=0;i<=ma-1;k++)
    	{
    		c[i][j]=0;
    		c[i][j]+=a[i][k]*b[k][j];
    		cout<<c[i][j];
    	}
    	cout<<endl;
    }
    }
    Tôi cũng chẳng biết con toán nhân ma trận phải thực hiện ra sao. Nhưng theo lô gích của code thì code trên sai ở những điểm sau:

    Code:
    	for(int i=0;i<=na-1;i++)
    	for(int j=0;i<=mb-1;j++) vòng lặp này hoặc không chạy, nếu chạy thì sẽ không dừng
    	for(int k=0;i<=ma-1;k++) vòng lặp này hoặc không chạy, nếu chạy thì sẽ không dừng
    	{
    		c[i][j]=0; cứ mỗi lượt lại trở về 0, còn tổng quái gì nữa
    		c[i][j]+=a[i][k]*b[k][j]; hai dòng này tương đuơng với c[i][j]=a[i][k]*b[k][j];
    		cout<<c[i][j];
    	}
    	cout<<endl; in xong hết 1 ma trận mới xuống hàng?

Các đề tài tương tự

  1. Lập trình C hỏi về con trỏ, trả lời giúp mình vs
    Gửi bởi truongvantri trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 01-06-2013, 09:43 PM
  2. Class ma trận, lỗi câu lệnh if kiểm tra điều kiện nhân 2 ma trận, sửa giúp mình!
    Gửi bởi code_c trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 12
    Bài viết cuối: 25-12-2011, 10:22 PM
  3. bài tập về ma trận vuông.giúp em với
    Gửi bởi cafedrao trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 20-08-2010, 02:38 PM
  4. tích hai ma trận. Giúp mình sửa lỗi?
    Gửi bởi quyen1991 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 06-08-2010, 09:10 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn