644 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:35:10 ] >>639 #include <stdio.h> #define N 128 int main(int argc, char *argv[]) { FILE *fpin, *fpout; int n, m, l, i, j, k; double mat1[N][N], mat2[N][N], mat3[N][N]; if(argc < 3 || (fpin = fopen(argv[1], "r")) == NULL || (fpout = fopen(argv[2], "w")) == NULL) return 1; fscanf(fpin, "%d%d%d", &n, &m, &l); for(i = 0; i < n; i++) for(j = 0; j < m; j++) fscanf(fpin, "%lf", &mat1[i][j]); for(i = 0; i < m; i++) for(j = 0; j < l; j++) fscanf(fpin, "%lf", &mat2[i][j]); for(i = 0; i < n; i++){ for(j = 0; j < l; j++){ mat3[i][j] = 0; for(k = 0, mat3[i][j] = 0; k < m; k++) mat3[i][j] += mat1[i][k]*mat2[k][j]; fprintf(fpout, "%f ", mat3[i][j]); } fprintf(fpout, "\n"); } fclose(fpin), fclose(fpout); return 0; }