Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Miguel2097 en 13 Diciembre 2016, 05:32 AM

Título: Error de validación o calculo matemático
Publicado por: Miguel2097 en 13 Diciembre 2016, 05:32 AM
Hola!

Tengo el siguiente problema en el case 2, ocupo hacer una validacion de "salarios" todos los calculos me estan funcionando excepto el de mayor a 50 mil, lo que debe de hacer esa validación es que todo salario mayor a 50 mil , se le aumenta un 7% pero no lo esta haciendo, de hecho todo monto que pongo mayor a 50 mil me imprime por pantalla 57500 cabe destacar que las demas validaciones si me estan funcionando.

Código:

Código (cpp) [Seleccionar]
#include <string>
#include <sstream>

using namespace std;

struct strdatos {

string cedula;
string nombre;
string edad;
string salario;

}Empleado;


int main () {

string mat [3][4];
int f = 0;
int c = 0;
double aumento = 0;

int opc;

do {

system("cls");
cout << "***********  Menu ******************" << endl;
cout << "1 . Ingresar Datos" << endl;
cout << "2. Mostrar Planilla" << endl;
cout << "3. Salir" << endl << endl;
cin >> opc;
cout << endl;



switch (opc) {

case 1:

system ("cls");

for (f = 0; f <= 2; f++) {


cout << "Ingrese Cedula ";
cin >> Empleado.cedula;
mat [f][0] = Empleado.cedula;

cout << "Ingrese Nombre ";
cin >> Empleado.nombre;
mat [f][1] = Empleado.nombre;

cout<< "Ingrese Edad ";
cin >> Empleado.edad;
mat [f][2] = Empleado.edad;

cout<< "Ingrese Salario ";
cin >> Empleado.salario;
mat [f][3] = Empleado.salario;

cout << "Empleado Ingresado" << endl << endl;

for (c = 0; c <= 3; c++){

}
}
break;

case 2:

for (f = 0; f <= 2; f++) {
for (c = 0; c <= 3; c++){

cout << mat [f][c] << " ";

}

cout << endl;

stringstream (mat[f][3]) >> aumento;

if (aumento < 50000 ) {
aumento = (aumento * 0.3) + aumento;

}else if (aumento = 50000) {
aumento = (aumento * 0.15 ) + aumento;

}else if (aumento >= 50001 ) {
aumento = (aumento * 0.07) + aumento;

}

cout << "El salario con el aumento es de : " << aumento << endl << endl;

}


system ("pause");

}// Switch


}while (opc != 3);




return 0;
}



Mod: Los códigos deben ir en etiquetas GeSHi, segundo aviso
Título: Re: Error de validación o calculo matemático
Publicado por: engel lex en 13 Diciembre 2016, 05:39 AM
linea 86

Código (cpp) [Seleccionar]
}else if (aumento = 50000) {

estás asignando, no comparando...


otra cosa... la siguiente condicion con un simples else basta... ya que pones un else if aumento >= 50001 pero como aumento es float podría vale 50000.1 y no entra en ninguna condición