Hola Gente:
Estoy tratando de resolver el siguiente problema:
"Realizar un programa en código C el cual permita la carga de una matriz de 3X3 desde teclado, esta matriz se llamara MatOrigen.
Una vez cargada la matriz sumar los valores de cada columna y el resultado de cada columna debe ser alojado en un vector de 3 posiciones que se llamara resultado. La sumatoria deberá ser implementada mediante una función que se llame ufdSumaColumna."
El tema es cómo le paso los valores de la matriz a la función. Ya probé diez mil formas. La más decente es esta (pero no funciona):
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int ufdSumaColumna(int y [3][3]);
int main(int argc, char *argv[]) {
int resultado[3];
int matOrigen [3][3];
int fila;
int columna;
printf("Ingrese los valores para una matriz de 3 por 3\n");
for(fila =0; fila <3; fila++){
for(columna=0; columna <3; columna++){
scanf("%i", &matOrigen[fila][columna]);
}
}
resultado[3] = ufdSumaColumna(matOrigen);
printf("Las columnas sumadas dan: %i\t%i\t%i\n", resultado[1], resultado[2], resultado[3]);
return 0;
}
int ufdSumaColumna (int y[3][3]){
int x[3];
int fila, columna;
for(columna=0; columna<3; columna++){
for(fila=0; fila<3; fila++){
x[columna]= y[fila][columna]+x[columna];
}
}
return x[3];
}[code]
La verdad no se me ocurre como hacerlo, si alguno me da una pista estaré muy agradecido. Seguramente es muy simple, pero no se me ocurre....
Saludos...
[/code]
En C una función no puede retornar un array, en su lugar debes declarar la función con dos parámetros, el primero es el array de arrays donde se almacenan los valores a procesar y el segundo el array de tres elementos para la sumatoria de cada columna:
void ufdSumaColumna(int mat[][3], int suma[])
{
int i;
int j;
for (j = 0; j < 3; j++){
suma[j] = 0;
for (i = 0; i < 3; i++)
suma[j] += mat[i][j];
}
}
Un saludo
Buenísimo... Muchísimas gracias... Me iba a volver mono tratando de resolverlo...
Gracias!!! :D :D :D