elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Necesito ayuda con cómo pasar valores de matrices a una función...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Necesito ayuda con cómo pasar valores de matrices a una función...  (Leído 1,680 veces)
niñoAtómico

Desconectado Desconectado

Mensajes: 21



Ver Perfil
[C] Necesito ayuda con cómo pasar valores de matrices a una función...
« en: 15 Octubre 2013, 02:20 am »

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):

Código:
#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 línea

"Los genios son idiotas insistentes..."
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [C] Necesito ayuda con cómo pasar valores de matrices a una función...
« Respuesta #1 en: 15 Octubre 2013, 02:51 am »

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:
Código
  1. void ufdSumaColumna(int mat[][3], int suma[])
  2. {
  3.   int i;
  4.   int j;
  5.  
  6.   for (j = 0; j < 3; j++){
  7.      suma[j] = 0;
  8.      for (i = 0; i < 3; i++)
  9.         suma[j] += mat[i][j];
  10.   }
  11. }

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
niñoAtómico

Desconectado Desconectado

Mensajes: 21



Ver Perfil
Re: [C] Necesito ayuda con cómo pasar valores de matrices a una función...
« Respuesta #2 en: 15 Octubre 2013, 03:13 am »

Buenísimo... Muchísimas gracias... Me iba a volver mono tratando de resolverlo...

Gracias!!! :D  :D :D
En línea

"Los genios son idiotas insistentes..."
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines