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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  funciones duda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: funciones duda  (Leído 3,022 veces)
ALONSOQ

Desconectado Desconectado

Mensajes: 62



Ver Perfil
funciones duda
« en: 26 Julio 2012, 22:52 pm »

Hola me podeis decir que falla en este codigo?

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <time.h>
  5.  
  6. int matriz_aleatoria (int m[3] );
  7. int matriz_aleatoria (int m[3])
  8. {
  9.    int  i;
  10.    srand (time(NULL));
  11.   for (i=0; i<3;i++)
  12.    {
  13.    m[i]= (rand()%16);
  14.    printf("%d",m[i]);
  15.    }  
  16.  
  17. }
  18.  
  19.    int main()
  20.    {
  21.       int matriz[3];
  22.        int contador;
  23.  
  24.       matriz_aleatoria(matriz[contador]);
  25.  
  26.        getch();
  27.    }

muchas gracias


En línea

overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: funciones duda
« Respuesta #1 en: 26 Julio 2012, 22:57 pm »

Hola me podeis decir que falla en este codigo?

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <time.h>
  5.  
  6. int matriz_aleatoria (int m[3] );
  7. int matriz_aleatoria (int m[3])
  8. {
  9.    int  i;
  10.    srand (time(NULL));
  11.   for (i=0; i<3;i++)
  12.    {
  13.    m[i]= (rand()%16);
  14.    printf("%d",m[i]);
  15.    }  
  16.  
  17. }
  18.  
  19.    int main()
  20.    {
  21.       int matriz[3];
  22.        int contador;
  23.  
  24.       matriz_aleatoria(matriz[contador]);
  25.  
  26.        getch();
  27.    }

muchas gracias

De C poco sé y me lio con sus codes pero que yo vea, la variable contador no está inicializada, si declarada pero no almacena ningun valor, solo basura que le pasas como índice al array matriz.


En línea

[/url]
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: funciones duda
« Respuesta #2 en: 26 Julio 2012, 23:01 pm »

El error principal se encuentra en la funcion "main", ahi llamas a la funcion pasandole un entero:
Código
  1. matriz_aleatoria(matriz[contador]);

Lo correcto es usar solo el nombre del array:
Código
  1. matriz_aleatoria(matriz);

Y ya que la funcion no retorna un valor debes indicar este como void:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void matriz_aleatoria(int m[]);
  6.  
  7. int main(void)
  8. {
  9.   int matriz[3];
  10.  
  11.   srand((unsigned) time(NULL));
  12.   matriz_aleatoria(matriz);
  13.  
  14.   return 0;
  15. }
  16.  
  17. void matriz_aleatoria(int m[])
  18. {
  19.   int  i;
  20.  
  21.   for (i = 0; i < 3; i++){
  22.      m[i] = rand() % 16;
  23.      printf("%d\n", m[i]);
  24.   }
  25. }

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
ALONSOQ

Desconectado Desconectado

Mensajes: 62



Ver Perfil
Re: funciones duda
« Respuesta #3 en: 27 Julio 2012, 13:23 pm »

Muchisimas gracias
En línea

ALONSOQ

Desconectado Desconectado

Mensajes: 62



Ver Perfil
Re: funciones duda
« Respuesta #4 en: 27 Julio 2012, 14:05 pm »

El error principal se encuentra en la funcion "main", ahi llamas a la funcion pasandole un entero:
Código
  1. matriz_aleatoria(matriz[contador]);

Lo correcto es usar solo el nombre del array:
Código
  1. matriz_aleatoria(matriz);

Y ya que la funcion no retorna un valor debes indicar este como void:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void matriz_aleatoria(int m[]);
  6.  
  7. int main(void)
  8. {
  9.   int matriz[3];
  10.  
  11.   srand((unsigned) time(NULL));
  12.   matriz_aleatoria(matriz);
  13.  
  14.   return 0;
  15. }
  16.  
  17. void matriz_aleatoria(int m[])
  18. {
  19.   int  i;
  20.  
  21.   for (i = 0; i < 3; i++){
  22.      m[i] = rand() % 16;
  23.      printf("%d\n", m[i]);
  24.   }
  25. }

Un saludo

Perdona por la pregunta que seguro que es una tontería, pero por que dices que la función no devuelve ningun valor. ¿ No devuelve tres entreros aleatorios?

gracias
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: funciones duda
« Respuesta #5 en: 27 Julio 2012, 17:23 pm »

Perdona por la pregunta que seguro que es una tontería, pero por que dices que la función no devuelve ningun valor. ¿ No devuelve tres entreros aleatorios?
No. Lo que hace esa función es almacenar los tres números a partir de la dirección indicada.

Para que una función retorne un valor se debe indicar como su tipo de retorno y se debe utilizar la sentencia:
Código
  1. return N;
Donde "N" sera el valor retornado por la función y, por supuesto, coincida con (o pueda ser convertido a) el tipo apropiado.

Por ejemplo una función que recibe tres números y resulta en la suma de estos es:
Código
  1. int suma(int a, int b, int c)
  2. {
  3.   return a + b + c;
  4. }

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda] Punteros a Funciones.
Programación C/C++
BlackZeroX 2 3,804 Último mensaje 14 Enero 2011, 07:44 am
por BlackZeroX
Duda con Funciones.
Programación C/C++
freecom4ever 3 2,509 Último mensaje 14 Marzo 2012, 19:52 pm
por Eternal Idol
Duda con funciones en C.
Programación C/C++
Danirs 6 3,573 Último mensaje 24 Octubre 2012, 02:21 am
por rir3760
[Duda] Funciones
Programación C/C++
Zodiak98 5 2,524 Último mensaje 12 Julio 2013, 09:21 am
por eferion
Duda funciones C++
Programación C/C++
javiherro 1 1,622 Último mensaje 30 Septiembre 2013, 13:00 pm
por eferion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines