Ejercicio:
Realizar un programa que:
- Solicitar insertar cuantas filas y columnas se desea que tenga la matriz
- Insertar la matriz
- Convertir una nueva matriz con su inversa
- Mostrarla en pantalla
Para ver la solución continúa leyendo.
****** Inicio programa ******/
#include <stdio.h>
#include <stdlib.h>
int **Asigmemoria(int fil, int col);
void Rellenar(int **matriz,int fil, int col);
void Inversa(int **matriz, int **aux,int fil, int col);
main()
{
int fila, colum, **matriz, **aux;
char str[8];
printf("Mete cuantas filas quieres que tenga la matriz: ");
gets(str);
sscanf(str,"%d",&fila);
printf("Mete cuantas columnas quieres que tenga la matriz: ");
gets(str);
sscanf(str,"%d",&colum);
matriz=Asigmemoria(fila,colum);
Rellenar(matriz,fila,colum);
aux=Asigmemoria(colum,fila);
Inversa(matriz,aux,fila,colum);
free(matriz);
free(aux);
getchar();
}
int **Asigmemoria(int fil, int col)
{
int **mat,i;
mat=(int**)malloc(sizeof(int)*fil);
for(i=0;i<fil;i++)
mat[i]=(int*)malloc(sizeof(int)*col);
return (mat);
}
void Rellenar(int **matriz,int fil, int col)
{
int i,j,num;
char st[10];
printf("Inserta los valores que quieras: \n \n");
for(i=0;i<fil;i++)
{
for(j=0;j<col;j++)
{
printf("a(%d,%d) : \n",i+1,j+1);
gets(st);
sscanf(st,"%d",&num);
matriz[i][j]=num;
}
}
}
void Inversa(int **matriz, int **aux,int fil, int col)
{
int i,j;
printf("Matriz actual: \n");
for(i=0;i<fil;i++)
{
for(j=0;j<col;j++)
{
printf("%d",matriz[i][j]);
}
printf("\n");
}
printf("\n");
/*Convertir a matriz inversa*/
for(i=0;i<fil;i++)
{
for(j=0;j<col;j++)
{
aux[j][i]=matriz[i][j];
}
}
printf("Matriz inversa: \n");
for(i=0;i<col;i++)
{
for(j=0;j<fil;j++)
{
printf("%d",aux[i][j]);
}
printf("\n");
}
}
/****** Fin programa******/
Comments
No response to “ Reserva dinámica de memoria - Programación C ”
Post a Comment | Enviar comentarios ( Atom )
Publicar un comentario
Deja tu opinión realizando un comentario interesante. Cualquier intento de Spam no será admitido.