//查找电费合计的代码...
/*
Upto 100 Units - Rs 5 pu
upto 200 units - Rs 5.5 pu
upto 500 units - Rs 6.5 pu
above 500 units - Rs 7 pu
*/
#include<stdio.h>
int
main ()
{
int a;
float b=0.0;
printf ("Enter Your Consumption in Units: ");
scanf ("%d", &a);
if (a > 0)
b=b+(a*5);
if (a > 100)
b=b+((a-100)*5.5);
if (a > 200)
b=b+((a - 200) * 6.5);
if (a>500)
b=b+((a - 500) * 7);
printf("\n Your Bill is Rs. %f",b);
return 0;
}
在输入750时,期望的答案是4750,但显示的是12650。此外,除了在每个if语句中使用and和运算符之外,还有什么更聪明的方法可以做到这一点?
1条答案
按热度按时间ccgok5k51#
如果
a
等于750,则所有if语句都将为真,因此您的代码将计算750 x 5 +(750-100)x 5.5 +(750-200)x 6.5 +(750-500)x 7,这不是您想要的结果。您可以更改if语句的顺序和reduce
a
,使其等于到目前为止支付的金额。为了保持代码的精神,它可以如下所示:
更“通用”和更易于维护的方法可能是: