Estoy aprendiendo a usar c hasta me surgio la dificultad de no saber como manda un arreglo de dos dimensiones a un función en C. Bueno explico eh escrito un codigo que recibe desde consola el orden de dos matrices y las multiplica bueno y trabaja bien y quiero optimizarlo creando una funcion que sea capaz de pedir ambas matrices bueno espero que me entienda les dejo el codigo que tengo para multiplicar las matrices sin la funcion que trato de hacer y despues el que tiene mi intento y idea de como mandar el arreglo
Código C:
Ver original
#include <stdio.h> //programa para multiplicar matrices que cumplan las reglas de multiplicacion int main (int argc, char*argv[]) { int i=0, j=0, k=0, s; int A[fila1][columna1],B[fila2][columna2],Aux[fila1][columna1]; // mini compro para mejorar mas adelante if (fila1<=0 || columna1<0 || fila2<=0 || columna2<0 || columna1!=fila2) { } else { //pide matriz 1 for(i=0;i<fila1;i++){ for(j=0;j<columna1;j++){ } } //pide matriz 2 for(i=0;i<fila2;i++){ for(j=0;j<columna2;j++){ } } // reliza las operaciones for(i=0;i<fila1;i++){ for(j=0;j<columna2;j++){ s=0; for(k=0;k<fila2;k++){ s=s+(A[i][k]*B[k][j]); } Aux[i][j]=s; } } //Mostras la respuesta for(i=0;i<fila1;i++){ for(j=0;j<columna2;j++){ } } } return 0; }
Código C:
Ver original
#include <stdio.h> //programa para multiplicar matrices que cumplan las reglas de multiplicacion int i=0, j=0; int pedir_matris (int x, int y, int Z); int main (int argc, char*argv[]) { int k=0, s; int A[fila1][columna1],B[fila2][columna2],Aux[fila1][columna1]; // mini compro para mejorar mas adelante if (fila1<=0 || columna1<0 || fila2<=0 || columna2<0 || columna1!=fila2) { } else { pedir_matris (fila1, columna1, "A"); //pide matriz 1 /*printf ("\"Ingrese 1ª (A) Matriz a Sumar\"\n"); for(i=0;i<fila1;i++){ for(j=0;j<columna1;j++){ printf("Ingrese el valor de A[%d][%d]:\n",i+1,j+1); scanf("%d",&A[i][j]); } }*/ //pide matriz 2 for(i=0;i<fila2;i++){ for(j=0;j<columna2;j++){ } } // reliza las operaciones for(i=0;i<fila1;i++){ for(j=0;j<columna2;j++){ s=0; for(k=0;k<fila2;k++){ s=s+(A[i][k]*B[k][j]); } Aux[i][j]=s; } } //Mostras la respuesta for(i=0;i<fila1;i++){ for(j=0;j<columna2;j++){ } } } return 0;
PD el codigo anterior es mi intento mas tonte de como mandar arreglos
PD muchas gracias por su ayuda