Deberías decir que es lo que te dice el compilador y en que falla, de momento si estás en C++ deberías utilizar las funciones:
En lugar de:
Debes quitar las variables:
Ya que ya están declaradas y son globales cosa que deberías cambiar...
Mejor organización del código, nombres descriptivos de variables ...
En la sentencia:
Sobra el ampersand '&'...
------------------------------------------------------------------------------------------
Lo dejo así porque es que si no , nadie lo va a leer (ahora lo miro a ver que tal):
Código (cpp) [Seleccionar]
std::cout << "cadena";
std::cin >> agua;
En lugar de:
Código (c) [Seleccionar]
printf("cadena");
scanf("%d",&agua);
Debes quitar las variables:
Código (cpp) [Seleccionar]
float total,des;
Ya que ya están declaradas y son globales cosa que deberías cambiar...
Mejor organización del código, nombres descriptivos de variables ...
En la sentencia:
Código (cpp) [Seleccionar]
scanf ("%s",&mp);
Sobra el ampersand '&'...
------------------------------------------------------------------------------------------
Lo dejo así porque es que si no , nadie lo va a leer (ahora lo miro a ver que tal):
Código (cpp) [Seleccionar]
#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;
}