C语言编程题目

功能说明:电力公司根据如下费率表进行收费:第一个300度(0到300度)以每度0.6元计,下一个 300度(301到600度)以每度0.5元计,再下一个 400度(601到1000度)以每度0.4元计,超过1000度的电量以每度0.3元计。
(1)设计计费函数float fee(int x); 函数根据客户用电量(x)计算电费并返回;
(2)设计主函数,从键盘上输入3个客户的用电量,调用fee函数分别计算出相应电费,并按示例格式输出(电费保留一位小数)。
运行示例:
输入:
123 2011 985
输出:
fee(123)=73.8
fee(2011)=793.3
fee(985)=484.0

#include<stdio.h>
#include<assert.h>
#define N 3
float fee(int x)
{
double money;
assert(x>=0);
if(x<=300)
{
money=0.6*x;
}
else if(x<=600)
{
money=0.6*300+0.5*(x-300);
}
else if(x<=1000)
{
money=0.6*300+0.5*300+0.4*(x-600);
}
else
{
money=0.6*300+0.5*300+0.4*400+0.3*(x-1000);
}
return (float)money;
}

int main()
{
int a[3],i,n=N;
printf("请输入%d个客户的用电量:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
printf("fee(%d)=%0.1f\n",a[i],fee(a[i]));
}
return 0;
}

//该程序经过VC++6.0成功编译执行,没有任何问题,最后祝楼主学习进步。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-02
代码如下:
#include <stdio.h>
float fee(int);
int main()
{
int q;
printf ("请输入电费(负数结束):\n");
while (scanf("%d",&q))
{
if (q<0)
{
printf("输入结束\n");
return 0;
}
printf("fee(%d)=%.1f\n",q,fee(q));
}
return 0;
}
float fee(int x)
{
if (x<=300)
{
return x*0.6;
}
else if (x>300&&x<=600)
{
return 180+(x-300)*0.5;
}
else if (x>600&&x<=1000)
{
return 330+(x-600)*0.4;
}
else
{
return 490+(x-1000)*0.3;
}
}
希望对楼主有用~~继续努力~共同进步哈~本回答被网友采纳
第2个回答  2012-10-02
float fee(int x)

{
if(x>0 && x<=300)
return 0.6*x;
else if(x>=301 && x<=600)
return 300*0.6+(x-300)*0.5
else if(x>=601 && x<=1000)
return 300*0.6+300*0.5+(x-400)*0.4;
else
return 300*0.6+300*0.5+400*0.4+(x-1000)*0.3;
}

希望可以帮助你。
第3个回答  2012-10-02
就是一个公式,推一下就有了。
第4个回答  2012-10-02
一个分段函数而已,代码都用不了你写这么长的题目。