Código
#include <stdio.h> #include <stdlib.h> #define DIM 100 using namespace std ; void lee_Matriz (float A[DIM][DIM], int N); void escribe_Matriz (float A[DIM][DIM], int N); void producto_Matriz (float A[DIM][DIM], float B[DIM][DIM], float C[DIM][DIM], int N); void Matriz_cuarta (float C[DIM][DIM], float D[DIM][DIM],int N); int main() { float A[DIM][DIM], B[DIM][DIM], C[DIM][DIM], D[DIM][DIM]; int N; printf("Dame la dimension de las matrices: "); scanf("%d", &N); printf("\nIntroduce la 1a matriz: \n\n"); lee_Matriz(A,N); system("pause"); system("cls"); printf("La primera matriz es: \n\n"); escribe_Matriz(A,N); printf("El cuadrado de esa matrices es: \n\n"); producto_Matriz(A,A,C,N); escribe_Matriz(C,N); printf("La cuarta potencia de esa matrices es: \n\n"); Matriz_cuarta(A,D,N); escribe_Matriz(C,N); ; return 0; } void lee_Matriz (float A[DIM][DIM], int N) { int i, j; for(i=0;i<N;i++) for(j=0;j<N;j++) { printf("\nDame el elemento %d,%d de la matriz: ",i+1,j+1); scanf("%f",&A[i][j]); } return ; } void escribe_Matriz (float A[DIM][DIM], int N) { int i, j; for(i=0;i<N;i++) { printf("("); for(j=0;j<N;j++) { printf(" %.2f ",A[i][j]); } printf(")\n"); } } void producto_Matriz (float A[DIM][DIM], float B[DIM][DIM], float C[DIM][DIM], int N) { int i,j,l; for(i=0;i<N;i++) { for(j=0;j<N;j++) { C[i][j]=0; for(l=0;l<N;l++) { C[i][j]+=A[i][l]*B[l][j]; } } } return; } void Matriz_cuarta(float C[DIM][DIM], float D [DIM][DIM],int N) { int i,j,l; for(i=0;i<N;i++) { for(j=0;j<N;j++) { D[i][j]=0; for(l=0;l<N;l++) { D[i][j]+=C[i][l]*C[l][j]; } } } return; }
Solo tengo un pequeño problema sobre este programa, a la hora de mostrar en pantalla la matriz a la cuarta, me vuelve a salir la matriz al cuadrado.
Supongo que es un fallo en la función pero por muchos cambios que haga tengo el mismo problema.
¿ cual es mi error ? gracias de antemano