#include #include double A[10][10],A1[9][9],A2[8][8],A3[7][7],A4[6][6], B[100],X[100],det,invA[10][10]; int N,N1,N2,N3,N4,N5,N6; FILE *fpA; FILE *fpB; double YIN3( int n, int m ) { double det ; int i,j,ii=0,jj; N4=N3-1; for (i=1;i1) for ( i=1;i1) for ( i=1;i1) for ( i=1;i9){ if(N==0) goto NEXTB; if(N >0) goto NEXTD;} if(N==0) { N=dgt;goto NEXTB;} N=10*N+dgt; NEXTD: /*** N の値は 99 以下としてここで決定です。 ***/ fgets(C,99,fpA); printf("%s",C);fprintf(fpB,"%s",C); for ( n=1;n<=N;n++) { /************************************************************************** Input File (A.txt) の次の2行を読み込みます。         n の値は n = 1 から n = N までです。 ***************************************************************************/ fgets(C,99,fpA); printf("%s",C);fprintf(fpB,"%s",C); i=-1;fgets(C,99,fpA); for ( m=1;m<=N;m++) { /************************************************************************* A[n][m] の値を読み込みます。 **************************************************************************/ s=1;M=0;H=1;A[n][m]=0;Flag=0; NEXTAA: i=i+1; printf("%c",C[i]);fprintf(fpB,"%c",C[i]); if(C[i]=='=') goto NEXTBB; goto NEXTAA; NEXTBB: i=i+1;printf("%c",C[i]);fprintf(fpB,"%c",C[i]); if(C[i]=='.') { A[n][m]=M; goto NEXTP; } if(C[i]=='-') { s=-1; goto NEXTBB; } dgt=10; if ( C[i] == '1' ) dgt=1;if ( C[i] == '2' ) dgt=2;if ( C[i]== '3' ) dgt=3; if ( C[i] == '4' ) dgt=4;if ( C[i] == '5' ) dgt=5;if ( C[i]== '6' ) dgt=6; if ( C[i] == '7' ) dgt=7;if ( C[i] == '8' ) dgt=8;if ( C[i]== '9' ) dgt=9; if ( C[i] == '0' ) dgt=0; if(dgt>9){ if(M==0)if(Flag==0) goto NEXTBB; A[n][m]=M; goto NEXTDD; } Flag=1; M=M*10+dgt; goto NEXTBB; NEXTP:i=i+1;printf("%c",C[i]);fprintf(fpB,"%c",C[i]); dgt=10; if ( C[i] == '1' ) dgt=1;if ( C[i] == '2' ) dgt=2;if ( C[i]== '3' ) dgt=3; if ( C[i] == '4' ) dgt=4;if ( C[i] == '5' ) dgt=5;if ( C[i]== '6' ) dgt=6; if ( C[i] == '7' ) dgt=7;if ( C[i] == '8' ) dgt=8;if ( C[i]== '9' ) dgt=9; if ( C[i] == '0' ) dgt=0; if(dgt>9) goto NEXTDD; H=H/10; A[n][m]=A[n][m]+dgt*H; goto NEXTP; NEXTDD: A[n][m]=s*A[n][m]; } /************************************************************************* B[n] の値を読み込みます。 **************************************************************************/ s=1;M=0;H=1;B[n]=0; NEXTAAB: i=i+1; printf("%c",C[i]);fprintf(fpB,"%c",C[i]); if(C[i]=='=') goto NEXTBBB; goto NEXTAAB; NEXTBBB: i=i+1;printf("%c",C[i]);fprintf(fpB,"%c",C[i]); if(C[i]=='.') { B[n]=M; goto NEXTPB; } if(C[i]=='-') { s=-1; goto NEXTBBB; } dgt=10; if ( C[i] == '1' ) dgt=1;if ( C[i] == '2' ) dgt=2;if ( C[i]== '3' ) dgt=3; if ( C[i] == '4' ) dgt=4;if ( C[i] == '5' ) dgt=5;if ( C[i]== '6' ) dgt=6; if ( C[i] == '7' ) dgt=7;if ( C[i] == '8' ) dgt=8;if ( C[i]== '9' ) dgt=9; if ( C[i] == '0' ) dgt=0; if(dgt>9){ if(M==0) goto NEXTBBB; if(M >0) { B[n]=M; goto NEXTDDB;} } M=M*10+dgt; goto NEXTBBB; NEXTPB:i=i+1;printf("%c",C[i]);fprintf(fpB,"%c",C[i]); dgt=10; if ( C[i] == '1' ) dgt=1;if ( C[i] == '2' ) dgt=2;if ( C[i]== '3' ) dgt=3; if ( C[i] == '4' ) dgt=4;if ( C[i] == '5' ) dgt=5;if ( C[i]== '6' ) dgt=6; if ( C[i] == '7' ) dgt=7;if ( C[i] == '8' ) dgt=8;if ( C[i]== '9' ) dgt=9; if ( C[i] == '0' ) dgt=0; if(dgt>9) goto NEXTDDB; H=H/10; B[n]=B[n]+dgt*H; goto NEXTPB; NEXTDDB: B[n]=s*B[n];} fgets(C,99,fpA); printf("%s",C);fprintf(fpB,"%s",C); fgets(C,99,fpA); printf("%s",C);fprintf(fpB,"%s",C); printf("\n\n");fprintf(fpB,"\n\n"); if( N>5 ) { printf("\n\n N > 5 \n\n"); fprintf(fpB,"\n\n N > 5 \n\n");goto FINAL;} MatNxN( ); printf( "\n**************************************\n\n"); fprintf(fpB,"\n**************************************\n\n"); printf( " det = %f \n", det ); fprintf( fpB," det = %f \n", det ); printf( "\n**************************************\n\n"); fprintf(fpB,"\n**************************************\n\n"); if( det == 0 ) goto FINAL; for ( n=1;n<=N;n++) { for (m=1;m<=N;m++) { printf(" A[%d][%d] = %f \n",n,m,A[n][m]); fprintf(fpB," A[%d][%d] = %f \n",n,m,A[n][m]); } printf( "\n B[%d] = %f \n\n",n,B[n] ); fprintf(fpB, "\n B[%d] = %f \n\n",n,B[n] ); } printf( "\n**************************************\n\n"); fprintf(fpB,"\n**************************************\n\n"); for ( n=1;n<=N;n++) { for (m=1;m<=N;m++) { printf(" invA[%d][%d] = %f \n",n,m,invA[n][m]); fprintf(fpB," invA[%d][%d] = %f \n",n,m,invA[n][m]); } printf( "\n X[%d] = %f \n\n",n,X[n] ); fprintf(fpB, "\n X[%d] = %f \n\n",n,X[n] ); } printf( "\n**************************************\n\n"); fprintf(fpB,"\n**************************************\n\n"); FINAL: fclose(fpA);fclose(fpB); cc=getchar( ); if(cc=='s') return 0;return 0; }