Bạn xem lại đối số mảng truyền vào ở hàm Nhập và hàm Đảo xem sao nhé.
//CHương trình đảo 1 ma trận em ko biet sai cho nao các hunh giúp em vớithank nhìu
C Code:
#include<stdio.h> #include<conio.h> void nhap_matrix(int A[10][10],int n) { int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++) { } } //************************************* void xuat_matrix(int A[10][10],int n) { int i,j; for(j=0;j<n;j++) { for(i=0;i<n;i++) } } //******************************************************* void matrix_dao(int E[10][10],int A[10][10],int n) { int i,j,k,r,m,p; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i==j) E[i][j]=1; else E[i][j]=0; } } for(j=0;j<n-1;j++) { p=j; for(i=j+1;i<n;i++) { if(A[i][j]>A[p][j]) p=i; if(A[p][j]==0) { getch(); } } if(p!=j) { for(k=j;k<n;k++) { r=A[j][k]; A[j][k]=A[p][k]; A[p][k]=r; } for(k=1;k<n;k++) { r=E[j][k]; E[j][k]=E[p][k]; E[p][k]=r; } } } for(i=j+1;i<n;i++) { r=A[i][j]/A[j][j]; for(k=j;k<n;k++) A[j][k]=A[i][k]-r*A[j][k]; for(k=1;k<n;k++) E[i][k]=E[i][k]-r*E[j][k]; } for(i=n;i>1;i--) { for(k=1;k<n;k++) E[i][k]=E[i][k]/A[i][i]; for(k=1;k<i-1;k++) for(j=1;j<n;j++) E[k][j]=E[k][j]-A[k][i]; } for(i=0;i<n;i++) for(j=0;j<n;j++) } //******************************************************* void main() { clrscr(); int A[10][10],E[10][10],i,j,n,d; float x[10],b[10]; nhap_matrix(A,n); xuat_matrix(A,n); matrix_dao(E,A,n); getch(); }(D:)> (D:)>
Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 06-06-2008 lúc 03:05 AM. Lý do: Chú ý đặt code trong cặp thẻ tag
Bạn xem lại đối số mảng truyền vào ở hàm Nhập và hàm Đảo xem sao nhé.
Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.
chưa xem qua thuật toán nhưng bạn xem lại cách khai báo hàm của mình nhé :
nên chuyển sang là ex :Code:void nhap_matrix(int A[10][10],int n) void matrix_dao(int E[10][10],int A[10][10],int n) void xuat_matrix(int A[10][10],int n)như vậy ở hàm main bạn mới sử dụng được làCode:void xuat_matrix(int A[][],int n);Code:nhap_matrix(A,n);