[ Foro para dudas y novedades ]
cordial saludo profesor Nacho cabanes.
Cordial saludo profesor Nacho y colaboradores.
Estoy realizando un programa de funciones en c++ sin utilizar arrays y bueno no se por que no se me muestran los resultados en el siguiente planteamiento:
La idea es atraves de una funcion leer los datos de tres empleados( codigo de empleado) y un numero escogido por cada uno de ellos al azar.
luego otra funcion debe calcular y devolver el codido del empleado con el numero mayor obtenido por cada uno de ellos.
y otra funcion debe mostrar en pantalla al empleado y el numero mayor obtenido por éste (codigo de empleado y numero mayor con el que gano)
mi codigo es el siguiente:
#include<iostream>
#include <windows.h>
using namespace std;
//ESTA FUNCION FUNCIONA CORRECTAMENTE//
int leer_datos(string codempl1,string codempl2,string codempl3,int numazar1,int numazar2,int numazar3)
{
int i=1;
system("cls");
cout<<"\n\tCodigo del empleado "<<i<<"(ej.S001)"<<": "; //S001 para denotar el codigo del empleado del departamento de sistemas
cin>>codempl1;
cout<<"\n";
numazar1=1+rand()%100;
cout<<"El numero escogido al azar por este empleado fue:"<<numazar1<<"\n";
cout<<"\n";
i++;
cout<<"\n\tCodigo del empleado "<<i<<"(ej.S001)"<<": "; //S001 para denotar el codigo del empleado del departamento de sistemas
cin>>codempl2;
cout<<"\n";
numazar2=1+rand()%100;
cout<<"El numero escogido al azar por este empleado fue:"<<numazar2<<"\n";
cout<<"\n";
i++;
cout<<"\n\tCodigo del empleado "<<i<<"(ej.S001)"<<": "; //S001 para denotar el codigo del empleado del departamento de sistemas
cin>>codempl3;
cout<<"\n";
numazar3=1+rand()%100;
cout<<"El numero escogido al azar por este empleado fue:"<<numazar3<<"\n";
cout<<"\n";
system("pause");
}
// EN ESTA FUNCION NO SE POR QUE NO ME RETORNA EL VALOR DE maxim??????
int numero_mayor(int nazar1,int nazar2,int nazar3)
{
int maxim;
if((nazar1>nazar2)&&(nazar1>nazar3))
{
maxim=nazar1;
return maxim;
}
else if((nazar2>nazar1)&&(nazar2>nazar3))
{
maxim=nazar2;
return maxim;
}
else
{
maxim=nazar3;
return maxim;
}
}
// EN ESTA FUNCION NO SE POR QUE NO ME MUESTRA mayor Y NO SE COMO PODRIA MOSTRAR EL CODIGO DEL EMPLEADO QUE OBTUVO EL MAYOR DE LOS NUMEROS????
int muestra_datos(int mayor,string cod_empleado1,string cod_empleado2,string cod_empleado3)
{
cout<<"El numero mayor escogido fue: "<<mayor<<"\n";
// cout<<" Y correponde al empleado:"
cout<<"\n";
}
int main()
{
int numaleatorio1,numaleatorio2,numaleatorio3,mayor;
string cod_empleado1,cod_empleado2,cod_empleado3;
srand(time(0));
cout<<"el departamento de sistemas se acaba de ganar un automovil"<<"\n";
cout<<"vamos a realizar un concurso entre los mejores empleados de esta area"<<"\n";
cout<<"ya sabemos que solo quedaron 3 participantes"<<"\n";
cout<<"pero solo 1 de ellos se adjudicara con el auto"<<"\n\n";
cout<<"estan listos?"<<"\n\n";
cout<<"ok, aqui vamos...."<<"\n";
Sleep(5000);
leer_datos(cod_empleado1,cod_empleado2,cod_empleado3,numaleatorio1,numaleatorio2,numaleatorio3);
mayor=numero_mayor(numaleatorio1,numaleatorio2,numaleatorio3);
muestra_datos(mayor,cod_empleado1,cod_empleado2,cod_empleado3);
system ("pause");
return 0;
}
POR SU AYUDA MIL GRACIAS
Es que en ese fuente hay varias cosas que están mal. Por ejemplo:
- Los valores de los números al azar y los de los códigos de los empleados se pierden: los pasas como parámetro, pero no los están por referencia.
- La función "leer_datos" es "int" pero no devuelve ningún valor.
- La función "int numero_mayor" es correcta, sólo que no necesita la variable auxiliar "maxim", puedes devolver el valor correctamente. Pruebala desde un programa más sencillo, con algo como "cout << numero_mayor(1, 3, 2)" y verás que va bien.
- La función "int muestra_datos(int mayor,string cod_empleado1,string cod_empleado2,string cod_empleado3)" no puede mostrar el código de empleado porque no se sabe a quién corresponde ese número. Tendrás que pasar también los valores de cada uno de ellos, además de los códigos (o mostrar datos desde la función "numero_mayor").
- ¿Para qué quieres la variable "i" si todo es tan repetitivo? Usa arrays, o bien escribe simplemente
cout<<"\n\tCodigo del empleado 2 (ej.S001)";
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)