Red de conocimiento informático - Computadora portátil - Lenguaje C para encontrar la inversa de una matriz

Lenguaje C para encontrar la inversa de una matriz

//El programa fuente es el siguiente #include

#include

#include

#include

#include

#include

# define max 100void inputstyle(int *); //Función de entrada

void input(int **,int); //Función de entrada

long danx(int ​​​​**, int);

int sgnx(int);

void martx(int ​​​​**,int);int main(void)

{

int estilo =0,i=0;

int matriz[max][max],*p[max];

for(i=0;i

char exit1=' ';

while(exit1 !='E'&& exit1!='e'){ printf("Encontrar la inversa de la matriz de orden n\n"); > input(p,style);

printf("La matriz original es:\n");

for(i=0;i

for(int j=0; j

printf("%4d",matrix[i][j]);

}

printf("\n ");

}

martx(p,estilo);

printf("\n" );

printf(" Salir=e Continuar=Presione cualquier tecla\n");

cin>>salir1;

fflush(stdin);

printf("\n\ n"); }

return(0);

} void input(int **p,int n){

for(int i=0 ;i

for(int j=0;j

printf( "Matriz de entrada (%d filas, %d columnas) Elemento: ",j+1,i+1);

*(*(p+j)+i)=0;

scanf("%d",*( p+j)+i);

fflush(stdin);

}

}

}void inputstyle(int *style ){

do{

printf("Matriz de entrada n*n orden n(0

fflush(stdin);

scanf("%d",style);

fflush(stdin);

}mientras(*estilo<=0 && *estilo

e>max);

}long danx(int ​​​​**p,int n){

int i=0,j1=0,k1=0,j2=0 ,k2 =0;

suma larga=0;

int operar[max][max],*po[max];

for(i= 0; i

else{

for(i=0;i

for(j1=1,j2=0;j1

k1=-1;k2=-1;

while(k2

k1++;

k2++;

if(k1==i)k1++;

*(*(po+j2)+k2)=*(*(p+j1)+k1);

}

}

/*for(int i1=0;i1

for(int h1=0;h1< n- 1;h1++){

printf("(%d,%d)%d ",i1,h1,*(*(po+h1)+i1));

}

printf("\n");

}*/

suma+=*(*(p+0)+i) * sgnx (1 +i+1) * danx(po,n-1);

}

devolver suma;

}

}int sgnx(int ​​​​i){

if(i%2==0)return(1);

else return(-1);

}void martx(int ​​​​**p,int n){

int i=0,j=0,j1=0,k1=0,j2=0,k2=0,num =0;

int tramform[max][max];

int operator[max][max],*po[max];

for( i=0;i< max;i++)*(po+i)=operar[i];

num=danx(p,n);

if(num== 0)printf("Matriz Irreversible\n");

else{

if(n==1)printf("La inversa de la matriz es: 1/%d\ n",num);

else{

printf("La inversa de la matriz es: coeficiente 1/%d *\n",num);

para(i=0;i< n;i++){

para(j=0;j

j1=-1;j2=- 1;

while (j2

j1++;j2++;

if(j1==j)j1++; k2=-1;

while(k2

k1++;

k2++;

if(k1= =i)k1++;

*(*(po+

j2)+k2)=*(*(p+j1)+k1);

}

}

forma de tranvía[i][j]=sgnx (2+i+j) * danx(po,n-1);

}

}

for(i=0;i

for(j=0;j

printf("%4d",tramform[i][j]);

}

printf("\n");

}

}

}

}

//Ejecutar resultados//Espero que te ayude