Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2009, 14:37
xdunkelheitx
 
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 16 años, 1 mes
Puntos: 1
Duda sobre funciones

Hola amigos e tratado de hacer una simple aplicaciones con funciones.
Código 1:
Ver original
  1. #include <iostream.h>
  2.  #include <conio.h>
  3.  #include <stdio.h>
  4.  #include <stdlib.h>
  5.  
  6.  
  7. void menu(int o1);
  8. void base(int o1,float bas);
  9.  
  10. int main()
  11. { int op1;
  12.   float ba;
  13.   menu(op1);
  14.   base(op1,ba);
  15.   system("PAUSE");
  16.  return 0;
  17. }
  18.  
  19.  
  20. void menu(int o1)
  21. {
  22. cout<<"[1]"<<endl;
  23. cout<<"[2]"<<endl;
  24. cout<<"[3]"<<endl;
  25. cout<<"[4]"<<endl;
  26. cout<<"[5]"<<endl;
  27. cout<<"[6]"<<endl;
  28. cout<<"Elige una opcion (1-6):";
  29. scanf("%d",&o1);
  30.  
  31. }
  32.  
  33. void base(int o1,float bas)
  34. {
  35.  if(o1==1)
  36. {bas=4;}
  37. if(o1==2)
  38. {bas=8;}
  39. if(o1==3)
  40. {bas=7;}
  41. if(o1==4)
  42. {bas=4.5;}
  43. if(o1==5)
  44. {bas=5;}
  45. if(o1==6)
  46. {bas=6;}
  47.  
  48. cout<<o1<<"  "<<bas;
  49. }

el caso es que en la funcion BASE no lee el o1 declarado en menu.

muy por el contrario si hago a o1 como vector o1[max]
Código 2:
Ver original
  1. #include <iostream.h>
  2.  #include <conio.h>
  3.  #include <stdio.h>
  4.  #include <stdlib.h>
  5.  #define max 5
  6.  
  7.  
  8. void menu(int o1[max]);
  9. void base(int o1[max],float bas);
  10.  
  11. int main()
  12. { int op1[max];
  13.   float ba;
  14.   menu(op1);
  15.   base(op1,ba);
  16.   system("PAUSE");
  17.  return 0;
  18. }
  19.  
  20.  
  21. void menu(int o1[max])
  22. {
  23. cout<<"[1]"<<endl;
  24. cout<<"[2]"<<endl;
  25. cout<<"[3]"<<endl;
  26. cout<<"[4]"<<endl;
  27. cout<<"[5]"<<endl;
  28. cout<<"[6]"<<endl;
  29. cout<<"Elige una opcion (1-6):";
  30. scanf("%d",&o1[0]);
  31.  
  32. }
  33.  
  34. void base(int o1[max],float bas)
  35. {
  36.  if(o1[0]==1)
  37. {bas=4;}
  38. if(o1[0]==2)
  39. {bas=8;}
  40. if(o1[0]==3)
  41. {bas=7;}
  42. if(o1[0]==4)
  43. {bas=4.5;}
  44. if(o1[0]==5)
  45. {bas=5;}
  46. if(o1[0]==6)
  47. {bas=6;}
  48.  
  49. cout<<o1[0]<<"  "<<bas;
  50. }

si lee correctamente o1 y da salida a la opcion de bas.
Espero que me puedan ayudar el porque no funciona declarandolo de la primera forma.

Gracias por su tiempo