Mình thấy Votjnh_it có post lên nhưng bài đó bạn VoTjnh làm sai nên minh post lên: Thank mình 1 cái cổ vũ tinh thần nha. Các bạn không hiểu thì liên hệ mình sẽ hướng dẫn rõ hơn B1-208
cám ơn nhé, nhờ bài của bạn mình đã biết thuật toán. Nhưng bài của bạn trình bày hơi rối. Mạn phép trình bày lại như sau: Mã: #include<iostream.h> #include<conio.h> #include<stdio.h> #include<iomanip.h> void nhap(int a[10][20], int b[10][20], int &m, int &n){ do{ clrscr(); cout<<"\n Nhap so hag cua cac ma tran: "; cin>>m; cout<<"\n Nhap so cot cua cac ma tran: "; cin>>n; }while(n<2 && m>10); cout<<"\n Nhap cac phtu cua ma tran thu 1: "; for(int i=0;i<m;i++) for(int j=0;j<n;j++){ cout<<"\n a["<<i+1<<","<<j+1<<"]= "; cin>>a[i][j]; } cout<<"\n Nhap cac phtu cua ma tran thu 2: "; for(int i=0;i<m;i++) for(int j=0;j<n;j++){ cout<<"\n b["<<i+1<<","<<j+1<<"]= "; cin>>b[i][j]; } return; } void tich(int a[10][20], int b[10][20], int m, int n){ int i,j,k,d[10][20]; if(m==n) cout<<"\n Hai ma tran nay kha tich"; else{ cout<<"\n Ko ton tai tich 2 ma tran nay"; return; } for(i=0;i<m;i++) for(j=0;j<n;j++){ d[i][j]=0; for(k=0;k<m;k++) d[i][j]=d[i][j]+a[i][k]*b[k][j]; } cout<<"\n Tich cua 2 ma tran vua nhap la: "<<endl; for(i=0;i<m;i++) for(j=0;j<n;j++){ cout<<setw(5)<<d[i][j]; if(j==n-1) cout<<"\n"; } return; } void main(){ int n,m,a[10][20],b[10][20]; nhap(a,b,m,n); tich(a,b,m,n); } Thư viện iomanip.h chứa hàm setw() --> thêm vào trình bày cho đẹp
cam ơn nhiều nha! nhưng thuật toán của bạn chưa tối ưu.bạn có thể tham khảo #include <iostream.h> #include <conio.h> #include <iomanip.h> main() { int x1; cout<<"Hay nhap so hang cua ma tran a:"; cin >> x1; int a[x1][x1];int b[x1][x1];int c[x1][x1]; cout<<"Hay nhap vao cac phan tu cua ma tran a:\n"; for(int i=1;i<=x1;i++) for(int j=1;j<=x1;j++) { cout<<"a["<<i<<"]["<<j<<"]="; cin >> a[j]; } cout<<"\nHay nhap vao cac phan tu cua ma tran b:\n"; for(int i=1;i<=x1;i++) for(int j=1;j<=x1;j++) { cout<<"a["<<i<<"]["<<j<<"]="; cin >> a[j]; } for(int i=1;i<=x1;i++) { for(int j=1;j<=x1;j++) { c[j]=0; for(int k=1;k<=x1;k++) { c[j] +=a[k] * b[k][j]; } } } for(int i=1;i<=x1;i++) { for(int j=1;j<=x1;j++) { cout<<setw(10)<< c[j]; } cout<<"\n"; } getch(); } chúc các bạn thành công :cheers:
tra loi bữa nay,ai viết như vậy nữa??????? viết bằng hàm cho pro nha! update đi.:003::handshake::003:
nếu cần liên hệ với mình,mình viết hàm nha!!! 2mit chỉ vậy thui!!!!!!!!!!!!!!:haha::haha::haha::infatuated:
PHP: #include <iostream.h> #include <iomanip.h> int C[100][100]; void nhap(int A[100][100], char k,int n,int m) { int i,j; cout<<"\nNhap gia tri cho ma tran "<<k<<" : "<<endl; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { cout<<"A["<<i<<"]["<<j<<"]= "; cin>>A[i][j]; } } void xuat(int A[100][100], char k,int n,int m) { int i,j; cout<<"\nXuat ma tran "<<k<<" : "<<endl; cout<<"\n"; for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { cout<<setw(4)<<A[i][j]; } cout<<"\n\n"; } } void nhan2mt(int A[100][100],int B[100][100],int C[100][100],int n,int m) { int i,h,k; for(i=1;i<=n;i++) { for(h=1;h<=n;h++) for(k=1;k<=m;k++){ C[i][h]+=A[i][k]*B[k][h]; } } } void main() { int n,m; int A[100][100],B[100][100]; cout<<"Nhap hang, cot : "; cin>>n>>m; nhap(A,'A',n,m); nhap(B,'B',m,n); xuat(A,'A',n,m); xuat(B,'B',m,n); nhan2mt(A,B,C,n,m); cout<<"\nA * B = C"<<endl; xuat(C,'C',n,n); }