Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/02/2010, 00:51
Avatar de Godiecar
Godiecar
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 3 meses
Puntos: 0
Busqueda Respuesta: Paso de valores entre funciones

Hola de nuevo.

El paso de valores se hace perfectamente si se llama a las funciones desde el main(), ¿pero porque no pasa lo mismo al hacerlo desde otra función?, en el código, llamo a la función leer desde la función menú y al terminar quiero volver a la función menú, para luego seleccionar la opción que llamara a la función escribir, pero parece que no funciona ¿qué estoy haciendo mal?


Gracias de antemano.






Código c:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void menu();
  5. int leer(int *a, int *b, int *c);
  6. void escribir(int a, int b, int c);
  7.  
  8.  
  9. int main()
  10. {
  11.  
  12. menu();
  13.                    
  14.   return 0;
  15. }
  16.  
  17.  
  18. void menu()
  19. {
  20. int opcion,a,b,c;
  21.  
  22. printf("1. Leer un numero\n");
  23. printf("2. Escibir numero\n");
  24. printf("0. Salir\n");
  25.  
  26.  
  27. scanf("%d", &opcion);
  28.  
  29.     switch (opcion){
  30.            
  31.            case 1:
  32.                 system("CLS");
  33.                 leer(&a,&b,&c);
  34.                 menu();
  35.                 break;
  36.            case 2:
  37.                 system("CLS");
  38.                 escribir(a,b,c);                
  39.                 menu();
  40.                 break;
  41.            case 0:
  42.  
  43.                 break;
  44.    
  45.            default :
  46.              printf("***Opcion no valida!***\n");
  47.              printf("\n\n");
  48.              menu();
  49.     }
  50. }
  51.  
  52.  
  53. int leer(int *a, int *b, int *c)
  54. {
  55.  
  56.     printf("Valor de a: ");    
  57.     scanf("%d", a);
  58.  
  59.     printf("Valor de b: ");    
  60.     scanf("%d", b);
  61.  
  62.     printf("Valor de c: ");    
  63.     scanf("%d", c);
  64.    
  65.     getch();
  66.     system("CLS");
  67. }
  68.  
  69.  
  70. void escribir(int a, int b, int c)
  71. {
  72.    
  73.     printf("%d\n", a);
  74.  
  75.     printf("%d\n", b);
  76.  
  77.     printf("%d\n", c);
  78.  
  79.    
  80.     getch();
  81.     system("CLS");    
  82. }