SOMA DE MATRIZES
Página 1 de 1
SOMA DE MATRIZES
//Fazer um programa para i) ler duas matrizes NxM; ii) calcular a soma dessas matrizes; iii)imprimir as matrizes e a soma. P.s= usar funções//
#include <stdio.h>
#include <stdlib.h>
float** aloca_matriz(int n, int m);
void ler_matriz(int n, int m, float **a);
void imp_matriz(int n, int m, float **a);
void soma_matriz(int n, int m, float **a, float**b, float **s);
int main(void)
{
int n, m, i;
float **a, **b, **s;
printf("leitura das dimensões\n");
scanf("%d%d", &n, &m);
printf("alocaçao da memoria das matrizes\n");
a=aloca_matriz(n,m);
b=aloca_matriz(n,m);
s=aloca_matriz(n,m);
printf("leitura das matrizes\n");
ler_matriz(n,m,a);
ler_matriz(n,m,b);
printf("soma das matriz\n");
soma_matriz(n,m,a,b,s);
printf("impressao das matrizes\n");
imp_matriz(n,m,a);
printf("\n");
imp_matriz(n,m,b);
printf("\n");
printf("impressao da matrize soma\n");
imp_matriz(n,m,s);
printf("desalocar memoria\n");
for(i=0;i<n;i++)
{
free(a[i]);
free(b[i]);
free(s[i]);
}
free(a);
free(b);
free(s);
system("pause");
return 0;
}
float** aloca_matriz(int n, int m)
{
int i;
float **a;
a=(float **)malloc(n*sizeof(float *));
if(a==NULL)
{
printf("alocaçao falhou\n");
exit (1);
}
for(i=0;i<n;i++)
{
a[i]=(float *)malloc(n*sizeof(float));
if(a[i]==NULL)
{
printf("alocaçao falhou\n");
exit (1);
}
}
return a;
}
void ler_matriz(int n, int m, float **a)
{
int i, j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%f", &a[i][j]);
}
}
}
void soma_matriz(int n, int m, float **a, float **b, float **s)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
s[i][j]=a[i][j]+b[i][j];
}
}
}
void imp_matriz(int n, int m, float **a)
{
int i, j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%f ", a[i][j]);
}
printf("\n");
}
}
#include <stdio.h>
#include <stdlib.h>
float** aloca_matriz(int n, int m);
void ler_matriz(int n, int m, float **a);
void imp_matriz(int n, int m, float **a);
void soma_matriz(int n, int m, float **a, float**b, float **s);
int main(void)
{
int n, m, i;
float **a, **b, **s;
printf("leitura das dimensões\n");
scanf("%d%d", &n, &m);
printf("alocaçao da memoria das matrizes\n");
a=aloca_matriz(n,m);
b=aloca_matriz(n,m);
s=aloca_matriz(n,m);
printf("leitura das matrizes\n");
ler_matriz(n,m,a);
ler_matriz(n,m,b);
printf("soma das matriz\n");
soma_matriz(n,m,a,b,s);
printf("impressao das matrizes\n");
imp_matriz(n,m,a);
printf("\n");
imp_matriz(n,m,b);
printf("\n");
printf("impressao da matrize soma\n");
imp_matriz(n,m,s);
printf("desalocar memoria\n");
for(i=0;i<n;i++)
{
free(a[i]);
free(b[i]);
free(s[i]);
}
free(a);
free(b);
free(s);
system("pause");
return 0;
}
float** aloca_matriz(int n, int m)
{
int i;
float **a;
a=(float **)malloc(n*sizeof(float *));
if(a==NULL)
{
printf("alocaçao falhou\n");
exit (1);
}
for(i=0;i<n;i++)
{
a[i]=(float *)malloc(n*sizeof(float));
if(a[i]==NULL)
{
printf("alocaçao falhou\n");
exit (1);
}
}
return a;
}
void ler_matriz(int n, int m, float **a)
{
int i, j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%f", &a[i][j]);
}
}
}
void soma_matriz(int n, int m, float **a, float **b, float **s)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
s[i][j]=a[i][j]+b[i][j];
}
}
}
void imp_matriz(int n, int m, float **a)
{
int i, j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%f ", a[i][j]);
}
printf("\n");
}
}
VonDuke- Esperto
- Mensagens : 74
Data de inscrição : 30/11/2010
Tópicos semelhantes
» SOMA DE MATRIZES
» soma quadrada
» SOMA DOS ELEMENTOS SUPERIORES
» soma dos elementos superiores
» soma diagonal principal
» soma quadrada
» SOMA DOS ELEMENTOS SUPERIORES
» soma dos elementos superiores
» soma diagonal principal
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|