Preguntas sobre la tarea: Urgente: ¡Ayuda! Cómo programar una matriz transpuesta en C
así que solo usa la multiplicación de matrices.
#include lt; stdio.hgt;
#include lt; stdlib.hgt
void print(int m, int p, int *p4) ; /*Declaración de función**/
int main()
{
int test_num = 0 /*Número de cálculos*/
int comp_times = 0; /*Número de cálculos*/
int m, n, p, i, j, k, sum, x
int *p1 =; NULL; /*Defina 3 punteros e inicialícelos*/
int *p2 = NULL
int *p3 = NULL; , amp; test_num); /*Leer el número de ejecuciones*/
for(; comp_ times lt; test_num; comp_times) /*Salir cuando el número de ejecuciones sea igual al número de ejecuciones*/
{
scanf("d d d", amp; m, amp; n, amp; p); /* Determina la forma de la matriz, el orden es m*n y n*p*/
p1 = malloc( (m * n) * sizeof(int) /* Solicitar memoria */
p2 = malloc( (n * p); ) * tamaño de (int) );
p3 = malloc( (m * p) * tamaño de (int)
for( i = 0; i lt.m * n); ; i) /* Leer en la primera matriz */
{
scanf("d", amp;*(p1 i));
for( i = 0; i lt.
for( i = 0; i lt; n * p; i) /* Leer en la segunda matriz*/
{
scanf("d ", amp; *(p2 i));
}
/* Calcula la siguiente multiplicación de matrices y almacenar el resultado de cada operación en En la tercera memoria */
for (i = 0; i lt; m; i)
{
for ( j = 0; j lt ; p; j )
{
para (k = suma = 0; k lt; n; k )
{
x = *(p1 k i*n) *(p2 k*p j);
suma = x; /* suma acumulada*/
} p>
{
x = *(p1 k i*n) *(p2 k*p j
suma = x /* Suma acumulada*/
}
*(p3 i*p j) = suma
}
}
imprimir(m, p , p3);
}
}
imprimir(m, p, p3
} p>
libre); (p1);
gratis(p2);
gratis(p3); >retu
rn 0;
}
//* Define una función que imprime el resultado de la multiplicación de matrices.
void print(int m, int p, int *p4)
{
int i = 0
mientras (i; lt; m * p)
{
void print(int m, int p, int *p4)
{
int i = 0;
mientras (i lt; m * p)
{
si (i p == p - 1)
printf("d\n ", *(p4 i));
else
printf("d ", *(p4 i)); >i;
}
}
}
Ingresa A y transpone la matriz, y listo
De hecho, no es necesario escribir esta pregunta así, simplemente cambie la abscisa y la ordenada.