All pastes #805305 Raw Edit

ri23r329i092i0932i

public c v1 · immutable
·published 2007-12-04 05:40 UTC
rendered paste body
#include <stdio.h>int main(int argc, char **argv){	FILE *fm1, *fm2;	int A[80][80], B[80][80], C[80][80];	int col[80];	int m = 0, n = 0, p = 0, q = 0;	int i, j, c;	int atual = 0;	char ch;	/* abrir os arquivos */	fm1 = fopen("matriz1.txt", "rt");	if (!fm1) {		printf("nao deu pra abrir matriz1\n");		return 1;	}	fm2 = fopen("matriz2.txt", "rt");	if (!fm2) {		printf("nao deu pra abrir matriz2\n");		return 1;	}	/* calcular o número de linhas e colunas no arquivo */	atual = 0;	char linha[80];	while (fgets(linha, 79, fm1)) {		n++;		m = 0;		i = 0;		while (ch = linha[i++]) {			if (ch == ' ' || ch == '\t')				atual = 0;			else {				if (atual == 0)					m++; /* achamos uma coluna */				atual = 1;			}		}	}	/* calcular o número de linhas e colunas no arquivo */	atual = 0;	linha[0] = '\0';	while (fgets(linha, 79, fm2)) {		p++;		q = 0;		i = 0;		while (ch = linha[i++]) {			if (ch == ' ' || ch == '\t')				atual = 0;			else {				if (atual == 0)					q++; /* achamos uma coluna */				atual = 1;			}		}	}	if (p != n) {		fprintf(stderr, "algo deu errado %d != %d\n", p, n);		return 1;	}	fseek(fm1, 0L, SEEK_SET);	fseek(fm2, 0L, SEEK_SET);	for (i = 0; i < m; i++)		for (j = 0; j < n; j++)			fscanf(fm1, "%d", &A[i][j]);	for (i = 0; i < p; i++)		for (j = 0; j < q; j++)			fscanf(fm1, "%d", &B[i][j]);	fclose(fm1);	fclose(fm2);	for (i =0 ; i < m; i++) {		for (c = 0; c < q; c++) {			for( j = 0; j < n; j++) {				col[j] = A[i][j] * B[j][c];			}		for (j = 1; j < n; j++)		   col[j] = col[j]+col[j-1]; 		C[i][c] = col[j-1];	     }   	}	FILE *fres;	fres = fopen("produto.txt", "wt+");	if (!fres) {		fprintf(stderr, "nao consegui abrir produto.txt\n");		return 1;	}	for (i = 0; i < m; i++) {		for (j = 0; j < m; j++) {			fprintf(fres, "%d ", C[i][j]);		}		fprintf(fres, "\n");	}	fclose(fres);	return 0;}