Red de conocimiento informático - Computadora portátil - ¿Qué tal programar la matriz adjunta de la matriz A de orden n en lenguaje c?

¿Qué tal programar la matriz adjunta de la matriz A de orden n en lenguaje c?

/* Desde que aprendí álgebra lineal, he estado pensando en cómo programar matrices complejas. Dos meses después, finalmente me di cuenta. Este programa me ayudó a descubrir cómo utilizar punteros secundarios para implementar matrices dinámicas bidimensionales, ¡lo cual es muy valioso para la investigación! Espero que pueda inspirar a todos los gg&mm que están aprendiendo programación para estudiar problemas más avanzados.

*/

#include

void zhuanzhi()

{

int a,b;

double **x,**p;

cout<< "Ingresar filas, columnas de la matriz.";

cin>>a>>b;

x=nuevo doble *[a];

for(int i=0;i

x[i]=nuevo doble[b ];

cout<< "Datos de entrada:\n";

for(i=0;i

for(int j =0;j

cin>>x[i][j];

//////////////// ////// Iniciar la transposición:

p =new double *[b];

for(i=0;i

p[i]=nuevo doble[a];

for(i=0;i

for(int j=0;j

// ///////////////////////////// Matriz de transposición de salida

para (i=0;i

{for(int j=0;j

cout<

cout<

}

for(i=0;i

eliminar x;

eliminar p;

p=0;

x=0;

}

void jia()

{

int a1,b1,a2,b2;

doble **x1,* * x2;

cout<< "Ingrese el número de filas y columnas de la primera fila:";

cin>>a1>>b1;

cout << "Ingrese el segundo número de filas y columnas:";

cin>>a2>>b2;

if(a1!=a2 ||b1 ! = b2)

////x1[][]

x1=nuevo doble *[a1];

for(int i=0;i

x1[i]=new double[b1];

cout<< "Ingrese la primera matriz:

for(i=0;i < a1;i++)

for(int j=0;j

cin>>x1[i][j];

/ /////x2[][]

x2=nuevo doble *[ a2];

for(i=0;i

x2[i]=new double[b2];

cout<< "Ingresando segunda matriz:\n";

for(i=0;i&

lt;a2;i++)

for( int j=0;j

cin>>x2[i][j];

cout<< "Después de sumar:"<

for(i=0;i

{

for( int j=0;j

{

x1[i][j]+=x2[i][j];

cout <

}

cout< }

for(i =0;i

eliminar x1;x1=0;

eliminar x2;x2=0;

}

void jian()

{

int a1,b1,a2,b2;

doble **x1,**x2;

cout<< "Ingrese el primer número de filas, número de columnas:";

cin>>a1>>b1;

cout<< "Ingrese el número de la segunda fila , número de columnas: ";

cin>>a2>>b2;

if(a1!=a2 ||b1 ! = b2)

/ ///x1[][]

x1=nuevo doble *[a1];

for(int i=0;i

x1[i]=new double[b1];

cout<< "Ingrese la primera matriz:

for(i=0;i

for(int j=0;j

cin>>x1[i][j];

//////x2[ ][]

x2=nuevo doble *[ a2];

for(i=0;i

x2[i]= new double[b2];

cout<< "Introduciendo la segunda matriz:\n";

for(i=0;i

for( int j=0;j

cin>>x2[i][j];

cout<< "Restado:"<

for(i=0;i

{

for( int j=0;j

{

x1[i][j]-=x2[i][j];

cout<

}

cout< }

for(i=0;i

eliminar x1;x1=0;

eliminar x2;x2=0;

}

void cheng()

{

> int a1,b1,a2,b2;

double **x1,**x2;

cout<< "Ingrese el primer número de filas, número de columnas:";

cin>>a1>>b1;

cout<< "Ingrese el segundo número de filas, número de columnas:";

cin& gt;>a2> >b2;

if(b1!=a2)

////x1[][]

x1=nuevo doble *[a1];

for(int i=0;i

x1[i]=new double[b1];

cout<< "Ingrese primero matriz:

for(i=0;i

for(int j=0;j

cin> >x1[i][j];

//////x2[][]

x2=nuevo doble *[a2];

for(i=0;i

x2[i]=new double[b2];

cout<< "Ingrese la segunda matriz:

for(i=0;i

for(int j=0;j

cin>>x2[i][j ];

cout<< "Después de la multiplicación:"<

doble **r=nuevo doble *[a1];

for(i =0;i

r[i]=new double[b2];

//// Comenzar la multiplicación:

for( int q=0;q

for(int w=0;w

{

r[q] [w]=0;

for(int j=0;j

r[q][w]+=x1[q][j]* x2[j][w];

}

// Salida

for( q=0;q

{

for(int w=0; w

{

cout<

}

cout<

}

for(i=0; i

for(i=0;i

Eliminar []x2[i];

Eliminar x1;x1=0;

Eliminar x2;x2=0;

eliminar r;r=0;

}

int main()

{

int c=1;

while(c)

{

cout<< "*** ***** *************

************************************\n";

cout<< ;"\t(1) transponer\n\t(2) sumas de matrices\n\t(3) restas de matrices\n\t(4) multiplicaciones de matrices\n\t(0) salir"<< ; /p>

cout<< "****************************************** ** *******************\n";

cin>>c;

cambiar(c)

{

caso 0: descanso;

caso 1: zhuanzhi();descanso;

caso 2:jia();descanso;

caso 3:jian();break;

caso 4:cheng();break;

default:cout<< "¡Vuelva a intentarlo! "<

}

}

}

devuelve 0;

}