精華區beta NAOE-87 關於我們 聯絡資訊
#include <stdio.h> #include <process.h> double determ(double[3][3]); void replace(double[3][3], double[3][3],double [3],int,int); int main() { int n=3,i; double a[3][3],aw[3][3],b[3],da,d[3],x[3]; FILE *pf; pf=fopen("mat.dat","r"); if(pf==NULL){ printf("file open error\n"); exit(1); } for(i=0; i<n;++i) { fscanf(pf,"%lf %lf %lf\n",&a[i][0],&a[i][1],&a[i][2]); printf("%lf %lf %lf\n",a[i][0],a[i][1],a[i][2]); } for(i=0; i<n; ++i){ fscanf(pf,"%lf",&b[i]); printf(" %lf\n",b[i]); } da=determ(a); for(i=0; i<n; ++i){ replace(a,aw,b,n,i); d[i]=determ(aw); x[i]=d[i]/da; } for(i=0; i<n; ++i) printf(" x%1d= %10.3lf\n",i,x[i]); return 0; } void replace(double a[3][3], double aw[3][3],double b[3],int n, int ir) { int i,j; for(i=0;i<n ;++i) for(j=0; j<n;++j) aw[i][j]=a[i][j]; for(i=0; i<n ;++i) aw[i][ir]=b[i]; } double determ(double a[3][3]) { double sum=0.; sum+=a[0][0]*a[1][1]*a[2][2]+a[0][2]*a[1][0]*a[2][1]+a[0][1]*a[1][2]*a[2][0]; sum-=(a[0][2]*a[1][1]*a[2][0]+a[0][0]*a[1][2]*a[2][1]+a[0][1]*a[1][0]*a[2][2]); return sum; } -- ※ 發信站: 批踢踢實業坊(ptt.twbbs.org) ◆ From: pc86.na.ntu.edu