Hola amigos e tratado de hacer una simple aplicaciones con funciones.
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