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:
#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
linea 86
}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