SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: RAB en Viernes 26 de Noviembre de 2010, 23:55

Título: Regresar vector lleno de una funcion a la función principal
Publicado por: RAB en Viernes 26 de Noviembre de 2010, 23:55
Bueno lo que pasa es que no entiendo (en realidad no sé) como pasar un vector de una función a la función principal y de ahí usarla en otra función.

Voy a poner un ejemplo sencillo solo para ver si se capto bien la idea.

Código: C
  1.  
  2. #include <stdio.h>
  3.  
  4.  
  5. int relle_vector(int vector[])
  6. {
  7.        
  8.         printf("Primero: ");
  9.         scanf("%d", &vector[0]);
  10.         printf("Segundo: ");
  11.         scanf("%d", &vector[1]);
  12.        
  13.         //Aqui es donde no se como regresar el vector lleno
  14.         return vector;
  15. }
  16.  
  17. int menor(int vector[])
  18. {
  19.         int menor;
  20.        
  21.         if(vector[0]>vector[1])
  22.         {
  23.                 menor=vector[0];
  24.         }
  25.         else
  26.         {
  27.                 menor = vector[1];
  28.         }
  29.  
  30.         return menor;
  31. }
  32.        
  33. int main(int argc, char *argv[])
  34. {
  35.         int vector[2];
  36.         int vec2[2];
  37.        
  38.         printf("Escriba dos numeros");  
  39.                      
  40.         vector[2] = relle_vector(vec2);
  41.        
  42.         printf("El numero menor es %dn", menor(vector));
  43.        
  44.         return 0;
  45. }
  46.  
  47.  

Como dije el ejemplo tal vez no tenga mucho sentido pero es solo para entender como pasar regresar el vector lleno.

cualquier sugerencia es bienvenida  ^_^
Título: Re: Regresar vector lleno de una funcion a la función principal
Publicado por: m0skit0 en Sábado 27 de Noviembre de 2010, 15:47
No lo he probado, pero debería funcionar:

Código: C
  1. #include <stdio.h>
  2.  
  3. void relle_vector(int vector[])
  4. {
  5.        
  6.         printf("Primero: ");
  7.         scanf("%d", &vector[0]);
  8.         printf("Segundo: ");
  9.         scanf("%d", &vector[1]);
  10. }
  11.  
  12. int menor(int vector[])
  13. {
  14.         int menor;
  15.        
  16.         if(vector[0]>vector[1])
  17.         {
  18.                 menor=vector[0];
  19.         }
  20.         else
  21.         {
  22.                 menor = vector[1];
  23.         }
  24.  
  25.         return menor;
  26. }
  27.        
  28. int main(int argc, char *argv[])
  29. {
  30.         int vector[2];
  31.        
  32.         printf("Escriba dos numeros");  
  33.                      
  34.         relle_vector(vector);
  35.        
  36.         printf("El numero menor es %dn", menor(vector));
  37.        
  38.         return 0;
  39. }
  40.  
Un vector y un puntero son lo mismo en C.
Título: Re: Regresar vector lleno de una funcion a la función principal
Publicado por: RAB en Sábado 27 de Noviembre de 2010, 20:51
Gracias, me sirvió perfecto y entendí muy bien lo de los vectores  :good: