Dev - C++ - Como hacer que en un arreglo de estructura no me mande error al imprimir.

   
Vista:

Como hacer que en un arreglo de estructura no me mande error al imprimir.

Publicado por Jonathan Sanchez (1 intervención) el 30/10/2013 21:26:09
Hola que tal,
Yo tengo el siguiente código que he armado, pero al final yo necesito imprimir todos los datos.
El codigo trata de los salarios de 20 personas, pero cuando intento hacer que las otras variables seran arreglos me deja ejecutarlo pero cuando debe imprimir todos los datos me manda un error de debug. Me podrían indicar cual es mi error, ya que el Dev no lo indica y también como se hace para que las demás variables sean arreglos. Muchas Gracias!

struct empleado {
char name[20];
int hot;
int eda;
double sal;
double sala, nsal, bon, pd, d1, d2;
};

void ingresar(empleado &i);
void calcularSueldo(empleado &s);


#include <iostream>
#include <cstdlib>


using namespace std;
int main()
{
empleado e;
ingresar(e);
calcularSueldo(e);
system("PAUSE");
return 0;
}
void ingresar(empleado &i){
cout<<" --- CIBERNETICS S.A. --- "<<endl;
for(int c=0;c<2;c++)
{
cout<<"\n Ingrese el nombre y apellido del colaborador:"<<endl;
cin>>i.name[c];
cout<<" Ingrese las horas trabajadas:"<<endl;
cin>>i.hot;
cout<<" Ingrese la base de pago:"<<endl;
cin>>i.sal;
cout<<" Ingrese la edad"<<endl;
cin>>i.eda;
}
}

void calcularSueldo(empleado &s){
int c; s.sala = s.sala+(s.sal*s.hot);
if(s.hot>40)
{
s.bon = (s.hot-40)*1.5;
s.nsal=s.sala+s.bon;
}
if(s.sala>=200)
{
s.pd= s.sala-200;
s.d1= s.pd*0.20;
s.d2= (s.sala-s.pd)*0.10;
}

cout<<"\tNOMBRE \tHORAS TRAB\tSUELDO\tEDAD\tTOTAL\tIMPUESTO\tNETO"<<endl;
for(int k=0;k<2;k++)
{
cout<<"\t"<<s.name[k]<<"\t\t"<<s.hot<<"\t"<<s.sal<<"\t"<<s.eda<<"\t"<<s.nsal<<"\t"<<(s.d1+s.d2)<<"\t"<<"\t"<<(s.nsal-(s.d1+s.d2))<<endl;
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder