#include #include float a[10][20]; int n,m,m1,v,i,j,k; float d,c,p,q; void main(void){ while( printf(" n = "), scanf("%d",&n)!=0){ m = n + 1; m1 = n + 1; printf(" 係数を%d", n * m1 ); printf(" 個入力してください\n"); for (i = 1;i<= n;i++){ printf("*****第%d",i); printf("式*****\n"); for (j = 1;j<= m1;j++){ scanf("%f",&a[i][j]); } } //***************************** for (i = 1;i<= n;i++){ for (j = 1;j<= m1;j++){ printf("%8.2f",a[i][j]); } printf("\n"); } printf("-------------------------------\n"); //***************************** printf("修正 行? "); scanf("%d",&i); printf("修正 列? "); scanf("%d",&j); printf("%f",a[i][j]); printf(" ⇒ "); scanf("%f",&a[i][j]); for (i = 1;i<= n;i++){ for (j = 1;j<= m1;j++){ printf("%8.2f",a[i][j]); } printf("\n"); } printf("-------------------------------\n"); //***************************** printf("Go OK? Input any Integer "); scanf("%d",&v); d = 1; for (k = 1;k<= n;k++){ p = a[k][k]; if (fabs(p) < 0.01){ if (a[k][m] = 0 ) printf(" 行列式=0 解不定\n"); else printf(" 行列式=0 解なし\n"); // MsgBox "第" & k & "列のピボットが0" // exit ; } for (i = 1;i<=n;i++){ if (i != k){ c = a[i][k] / p; for (j = k;j<= m;j++){ a[i][j] = a[i][j] - c * a[k][j]; } } } d = d * a[k][k]; } //***************************** printf( "行列式= %f\n" , d); for( i = 1;i<= n;i++){ q = a[i][i]; for (j = 1;j<= m;j++){ a[i][ j] = a[i][j] / q; } } //***************************** for (i = 1;i<= n;i++){ for (j = 1;j<= m1;j++){ printf("%8.2f",a[i][j]); } printf("\n"); } printf("-------------------------------\n"); } }