#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i, j, ra, ca, rb, cb, rc, cc;
float *A, **pA, *B, **pB, *C, **pC;
printf("Ingrese el valor de los renglones A: ");
scanf("%d", &ra);
printf("Ingrese el valor de las columnas A: ");
scanf("%d", &ca);
printf("Ingrese el valor de los renglones B: ");
scanf("%d", &rb);
printf("Ingrese el valor de las columnas B: ");
scanf("%d", &cb);
A=(float*)malloc(ra*ca*sizeof(float));
pA=(float**)malloc(ca*sizeof(float*));
B=(float*)malloc(rb*cb*sizeof(float));
pB=(float**)malloc(cb*sizeof(float*));
C=(float*)malloc(ra*ca*sizeof(float));
pC=(float**)malloc(ca*sizeof(float*));
// Liberando memorias en caso de que los valores ingresados sean mayor a las posibilidades de la computadora------------->
if(A==NULL||pA==NULL||B==NULL||pB==NULL||pC==NULL||C==NULL)
{
free(A);
free(pA);
free(B);
free(pB);
free(pC);
free(C);
printf("ERROR: Memoria insuficiente\n");
return -1;
}
for(j=0; j<ca; j++)
pA[j]=A+j*ra;
for(j=0; j<cb; j++)
pB[j]=B+j*rb;
// Si filas y columnas no son iguales error-------------------------------------------------------->
if(ra!=rb||ca!=cb)
{
printf("ERROR: Las filas y columnas ingresadas deben ser identicas\n");
free(A);
free(pA);
free(B);
free(pB);
return 01;
}
// for(j=0; j<cc; j++)
// pC[j]=C+j*rc;
// Llenando matrices (Automático)--------------------------------------------------------------------------------->
/* for(j=0; j<ca; j++)
for(i=0; i<ra; i++)
*(A+j*ra+i)=1.0*(rand)/RAND_MAX;
for(j=0; j<cb; j++)
for(i=0; i<rb; i++)
*(B+j*rb+i)=1.0*(rand)/RAND_MAX;*/
// Llenando matrices (Manual)--------------------------------------------------------------------------------->
for(j=0; j<ca; j++)
for(i=0; i<ra; i++)
{
printf("A[%d][%d] = ", j+1, i+1);
scanf("%f", pA+ra*i+j);
}
for(j=0; j<cb; j++)
for(i=0; i<rb; i++)
{
printf("B[%d][%d] = ", j+1, i+1);
scanf("%f", pB+rb*i+j);
}
//Realizando suma----------------------------------------------------------------------------------------------------->
/* for(j=0; j<ca; j++)
for(i=0; i<ra; i++)
pC[ra*j+i]=pA[ra*j+i]+pB[ra*j+i];*/
// Imprimiendo resultado---------------------------------------------------------------------------------------------->
for(j=0; j<ca; j++)
{
for(i=0; i<ra; i++)
printf("%f\t", pC[ra*i+j]);
printf("\n");
}
printf("%f\n");
system("PAUSE");
return 0;
}