Código 1:
Ver original
#include <iostream.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> void menu(int o1); void base(int o1,float bas); int main() { int op1; float ba; menu(op1); base(op1,ba); system("PAUSE"); return 0; } void menu(int o1) { cout<<"[1]"<<endl; cout<<"[2]"<<endl; cout<<"[3]"<<endl; cout<<"[4]"<<endl; cout<<"[5]"<<endl; cout<<"[6]"<<endl; cout<<"Elige una opcion (1-6):"; scanf("%d",&o1); } void base(int o1,float bas) { if(o1==1) {bas=4;} if(o1==2) {bas=8;} if(o1==3) {bas=7;} if(o1==4) {bas=4.5;} if(o1==5) {bas=5;} if(o1==6) {bas=6;} cout<<o1<<" "<<bas; }
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
#include <iostream.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #define max 5 void menu(int o1[max]); void base(int o1[max],float bas); int main() { int op1[max]; float ba; menu(op1); base(op1,ba); system("PAUSE"); return 0; } void menu(int o1[max]) { cout<<"[1]"<<endl; cout<<"[2]"<<endl; cout<<"[3]"<<endl; cout<<"[4]"<<endl; cout<<"[5]"<<endl; cout<<"[6]"<<endl; cout<<"Elige una opcion (1-6):"; scanf("%d",&o1[0]); } void base(int o1[max],float bas) { if(o1[0]==1) {bas=4;} if(o1[0]==2) {bas=8;} if(o1[0]==3) {bas=7;} if(o1[0]==4) {bas=4.5;} if(o1[0]==5) {bas=5;} if(o1[0]==6) {bas=6;} cout<<o1[0]<<" "<<bas; }
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