Código
En lugar de:
std::cout << "cadena"; std::cin >> agua;
Código
Debes quitar las variables:
Código
Ya que ya están declaradas y son globales cosa que deberías cambiar...
float total,des;
Mejor organización del código, nombres descriptivos de variables ...
En la sentencia:
Código
Sobra el ampersand '&'...
scanf ("%s",&mp);
------------------------------------------------------------------------------------------
Lo dejo así porque es que si no , nadie lo va a leer (ahora lo miro a ver que tal):
Código
#include <cstdlib> #include <iostream> int servicio,promo; float total,des; char mp[10]; using namespace std; float agua() { int ca,est; float total,des; printf ("Consumo agua"); scanf ("%d",&ca); printf ("estrato"); scanf ("%d",&est); if (ca<=2000) return (total=35000); else if(ca>2000) return (total=35000+(ca-2000*400)); else if(est==1||est==2) des=total*0.20; return (total = total-des); if (est==3||est==4) des=total*0.10; return (total = total-des); } float energia() { int ce,est; float total,des; printf ("Consumo energia"); scanf ("%d",&ce); printf ("estrato"); scanf ("%d",&est); if (ce<=3000) return (total=30000); else if(ce>3000) return (total=30000+(ce-3000*350)); else if(est==1||est==2) des=total*0.15; return (total = total-des); if (est==3||est==4) des=total*0.10; return (total = total-des); if (est==5||est==6) des=total*0.05; return (total = total-des); } float telefono() { int ct,est; float total,des; printf ("Consumo telefono"); scanf ("%d",&ct); printf ("estrato"); scanf ("%d",&est); if (ct<=1000) return (total=38000); else if(ct>1000) return (total=38000+(ct-1000*100)); else if(est==1||est==2) des=total*0.30; return (total = total-des); if (est==3||est==4) des=total*0.12; return (total = total-des); if (est==5||est==6) des=total*0.08; return (total = total-des); } int main(int argc, char *argv[]) { printf ("1.Agua\n2.Energia\n3.Telefono"); scanf ("%d",&servicio); printf ("Modo de pago (efectivo-Credito)"); scanf ("%s",&mp); switch (servicio) { case 1 : total =agua(); break; case 2 : total =energia(); break; case 3 : total =telefono(); break; default : printf ("Opcion no disponible\n"); break; } if (strcmp(mp,"efectivo")==0&&total>200000) { promo = (total*0.04); total = total-promo; } if (strcmp(mp,"credito")==0&&total>200000) { promo = (total*0.02); total = total-promo; } printf ("El total es:%.0f",total); system("PAUSE"); return EXIT_SUCCESS; }