当前位置:首页 » 编程语言 » c语言算电费收取实行阶梯制
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言算电费收取实行阶梯制

发布时间: 2022-09-18 03:55:52

① 请c语言大神帮忙!

这个题目要点。

1、收费标准必须为可操作修改。

2、收费标准档位是不确定的,需要动态数组。(当然用常量,每次手改源代码就不需要了)

3、收费标准的输入除第一个阀值,其他要求增量(较上一个阀值),不能直接用于运算。

4、输入范围需要有验证。

最简易做法是将标准定义成常量,然后需要时修改代码常量,但这样对用户够不友好,所以我这里把标准定义成结构,定义函数动态申请数组,修改收费标准。

#include<stdio.h>

#include<malloc.h>

typedef struct eq

{

int tn;//表示共有几档

float **fb;//表示各档计费标准的二维数组

}EQ;

int newFb(int tn);//构建收费标准数组地址空间,成功返回1,失败返回2。(成功自动释放旧地址,无需单独释放)

EQ *init();//初始化计费标准

void showEQ();//打印当前收费标准

int setEQ();//修改收费标准,成功返回1,失败返回0

float ecost(float amount);//计算电费

EQ *eq=NULL;

int main()

{

int n=0;

float at;

eq=init();

if(!eq)

{

printf("异常终止! ");

return 1;

}


while(1)

{

printf("1、打印收费标准;2、修改收费标准;3、计算电费 ");

n=0;

while(n!=1 && n!=2 && n!=3)

scanf("%d",&n);

switch(n)

{

case 1:showEQ();break;

case 2:

if(!setEQ())

printf("异常!修改失败! ");

else

printf("修改成功! ");

break;

case 3:printf("请输入年度用电量:");

scanf("%f",&at);

printf("年度用电费用:%.2f ",ecost(at));

break;

}


}

return 0;

}

float ecost(float amount)//计算电费

{

int i;

float sum=0;

if(amount<=eq->fb[0][0])

return 0;


for(i=eq->tn-1;i>=0;i--)

if(amount>eq->fb[i][0])

{

sum+=(amount-eq->fb[i][0])*eq->fb[i][1];

amount=eq->fb[i][0];

}


return sum;

}

EQ *init()//初始化计费标准,

{

if(eq)

return eq;

eq=(EQ *)malloc(sizeof(EQ));

if(!eq)

return NULL;

eq->tn=4;

eq->fb=NULL;

if(!newFb(4))

{

free(eq);

return NULL;

}

eq->fb[0][0]=0,eq->fb[0][1]=0.6;

eq->fb[1][0]=3000,eq->fb[1][1]=0.7;

eq->fb[2][0]=5000,eq->fb[2][1]=0.9;

eq->fb[3][0]=7000,eq->fb[3][1]=1.2;

return eq;

}

int newFb(int tn)//构建收费标准数组地址空间,成功返回1,失败返回0。(成功自动释放旧地址,无需单独释放)

{

int i,flag=1;

float **fbSave=NULL;

if(!eq)

return 0;

eq->tn=tn;

if(!eq->fb)//如果有旧地址,保存该地址,用于还原

fbSave=eq->fb;

eq->fb=(float **)malloc(sizeof(float *)*tn);

if(!eq->fb)

flag=2;

for(i=0;flag && i<tn;i++)

{

eq->fb[i]=(float *)malloc(sizeof(float)*2);

if(!eq->fb)

flag=3;

}


if(flag==3)//内存申请失败,释放已申请的新地址,还原旧地址

{

for(i=0;i<tn;i++)

free(eq->fb[i]);

free(eq->fb);

eq->fb=fbSave;

return 0;

}

if(flag==2)

{

eq->fb=fbSave;

return 0;

}

return 1;

}

void showEQ()//打印当前收费标准

{

int i;

printf("当前共计%d档计费标准: ",eq->tn);

for(i=0;i<eq->tn;i++)

printf("电量超过%.0f,%s%.1f(实际金额%.1f) ",eq->fb[i][0],i>0?"每度再增加":"每度",i>0?eq->fb[i][1]-eq->fb[i-1][1]:eq->fb[i][1],eq->fb[i][1]);

printf(" ");

}

int setEQ()//修改收费标准,成功返回1,失败返回0

{

int i,tn;

float money;

printf("请输入新的计费档数(输入0退出修改):");

scanf("%d",&tn);

if(!tn)

return 0;

if(newFb(tn))

{

for(i=0;i<eq->tn;i++)

{

printf("请输入第%d档电量阀值(%s%.0f),及%s(单位元)",i+1,i>0?"必须大于":"大于等于",i>0?eq->fb[i-1][0]:0,i>0?"每度增加收费":"每度收费");

scanf("%f%f",&eq->fb[i][0],&money);

if(i==0 && eq->fb[i][0]<0)

{

printf("输入错误!起始阀值不能小于0!请重新输入 ");

i--;

continue;

}

if(i>0 && eq->fb[i][0]<=eq->fb[i-1][0])

{

printf("输入错误!当前阀值不能小于上一次的阀值!请重新输入 ");

i--;

continue;

}

if(i==0)

eq->fb[i][1]=money;

else

eq->fb[i][1]=eq->fb[i-1][1]+money;

}

}


return 1;

}

//PS:你说你代码运算不对,看看是否把增量当金额来用了。

② 阶梯电价问题 C语言

#include<stdio.h>
intmain()
{
floatn,cost;
scanf("%f",&n);
if(n<=110)
cost=n*0.5;
elseif(n<=210)
cost=110*0.5+(n-110)*0.55;
elsecost=110*0.5+(210-110)*0.55+(n-210)*0.7;
printf("%.2f",cost);
return0;
}

③ C语言求阶梯电价,急急急

#include <stdio.h>
int main()
{
int m;

scanf("%d",&m);

while(m--){
float a,result;

scanf("%f",&a);
if(a>=0 && a<=110)
result=0.5*a;
else if(a>100 && a<=210)

result=0.5*110+0.55*(a-110);
else if(a>210){
int i=1;

while(a-210*i>320)

i++;

if(a-210*i>=110)

result=0.7*210*i+0.55*(a-210*i)+0.5(a-210*i-110);

else

result=0.7*210*i+0.5*(a-210*i);
printf("%.2f\n",result);

}
}
return 0;
}

④ 阶梯式电费怎计算的

阶梯电价是指按照用户消费的电量分段定价。根据广东省目前执行的最新的居民阶梯电价标准,每户每月电量分档划分为夏季标准和非夏季标准。其中:
【夏季标准(5月-10月)】第一档电量为每户每月0-260度的用电量,其电价不作调整;
第二档电量为每户每月261-600度的用电量,其电价每度加价0.05元;
第三档电量为每户每月601度及以上的用电量,其电价每度加价0.30元。
【非夏季标准(1-4月、11-12月)】第一档电量为每户每月0-200度的用电量,其电价不作调整;
第二档电量为每户每月201-400度的用电量,其电价每度加价0.05元;
第三档电量为每户每月401度及以上的用电量,其电价每度加价0.30元。
【计算公式】总电费=第一档电费+第二档电费+第三档电费
第一档电费=第一档标准以内的电量×第一档电价
第二档电费=超出第一档标准并且在第二档标准以内的电量×(第一档电价+0.05元/度)
第三档电费=超出第二档标准的电量×(第一档电价+0.3元/度)计算。
由于不同地市所对应执行的电价都有所不同,若想了解最新的电价信息,建议您可关注“南方电网95598”公众平台,点击服务咨询> 电价信息选择用电区域的城市>查看详细电价表,即可查询到相对应的电价信息。
希望我们的回答能对您有所帮助。

⑤ 电价阶梯式收费标准是什么

阶梯电价是按照一个电费结算周期内所使用的电量,再按照阶梯电价计算公式计算当期电费的。
最新居民阶梯电价从2019年7月1日起执行,分夏季(5-10月)、非夏季(11月-次年4月)两个计费标准;

夏季:第一档0-260度,第二档261-600度,第三档601度及以上。

非夏季:第一档:0-200度,第二档201-400度,第三档401度及以上

电种价格差别。电有火电(含核电等)和水电(含风能电等)之分。不同种类的电力意味着不同的生产流程,其生产成本也不同。在效用相同、费用不同的情况下,由效用与费用之比所决定的不同种类电力的价值有所差别。这种差别应该在电力价格上得到反映。

如:火电是通过对煤炭(天然铀等)进行加工取得的,其劳动对象是包含有人类劳动的物质产品,生产性质类似于加工工业,产品成本中包含很大比重的物耗。因而其价格首先必须对这种物质消耗进行完全补偿;同时要与所耗煤炭(铀)的价格保持科学合理的比例关系。

水电是直接利用不可耗竭的自然力而获得的,其劳动对象(水位落差、风力等)是未经人类劳动的自然资源、不会作为物耗构成成本。这使得水电价格赖以形成的费用基础在质和量上都与火电有明显不同。因此,水电和火电的价格也必然有所差别。这种差价的确定原则是:使煤炭资源和水力、风力资源因地制宜,得到最充分的利用。

用电时价差别化。无论是火电还是水电都是不可贮存的产品,即无法通过一个经济成本来建立电力产品库存以调节电力供应流量。但是,对电力的需求却往往因时而异。

为了调节需求,使之供给均衡,一般采用分时电价,即对高峰用电和低谷用电分别计价的方式,高峰用电高价,低谷用电低价,以促使电力用户错开用电时间,提高电力使用的效率。

电力产品是基础产品,涉及面很广,直接影响一国的产业政策、居民生活甚至能源安全。因而,电力产品价格常常是国家政策干预的重点对象之一,世界各国都实行有不同的电价政策。由于用户分散,电价政策不仅要科学、周密,还必须简便易行。

⑥ 大一程序设计C语言问题。

#include <stdio.h>
#include <stdlib.h> //system函数头文件
int main(void)
{
double cost=0.0, kws=0.0; //变量使用前初始化
printf("Enter Number:");
scanf("%lf", &kws);
while (kws < 0) //当输入值<0,打印提示信息,并重新输入值,直到输入正确
{
printf("Invalid Value!\n");
printf("Enter Number:");
scanf("%lf", &kws);
}
if (kws <= 50){
cost = 0.53*kws;
}
else{
cost = 0.53 * 50 + 0.58*(kws - 50);
}
printf("cost = %.2f\n", cost);
system("PAUSE"); //用来暂停console端
return 0;
}

⑦ c语言阶梯电价计费

#include <stdio.h>
int main()
{
int m;

scanf("%d",&m);

while(m--){
float a,result;

scanf("%f",&a);
if(a>=0 && a<=110)
result=0.5*a;
else if(a>100 && a<=210)

result=0.5*110+0.55*(a-110);
else if(a>210){
int i=1;

while(a-210*i>320)

i++;

if(a-210*i>=110)

result=0.7*210*i+0.55*(a-210*i)+0.5(a-210*i-110);

else

result=0.7*210*i+0.5*(a-210*i);
printf("%.2f\n",result);

}
}
return 0;
}

⑧ 听说电费现在是阶梯式收费怎么个收费法

阶梯式电价是阶梯式递增电价或阶梯式累进电价的简称,也称为阶梯电价,是指把户均用电量设置为若干个阶梯分段或分档次定价计算费用。

简单来说,就是在不同的时间段对该阶段的用电量用不同的收费方式进行电费收取。

对居民用电实行阶梯式递增电价可以提高能源效率。通过分段电量可以实现细分市场的差别定价,提高用电效率。2012年6月14日,发改委表示居民“阶梯电价”将于7月1日在全国范围内实施。

阶梯式电价的具体内容是:

第一阶梯为基数电量,此阶梯内电量较少,电价也较低;

第二阶梯电量较高,电价也较高一些;

第三阶梯电量更多,电价更高。

随着户均消费电量的增长,每千瓦时电价逐级递增。对居民用电实行阶梯式递增电价可以提高能源效率。通过分段电量可以实现细分市场的差别定价,提高用电效率。并且能够补贴低收入居民。

(8)c语言算电费收取实行阶梯制扩展阅读

实行这种电价制度主要基于以下原因:

(1)为了保障低收入群体维持基本生活水平的用电需求,设置第一档电量和电价,这一档的电价一般低于单位供电成本。

(2)按照绝大多数居民的户均用电量或全部居民用户的户均用电量设置第二档电量,此档电价基本涵盖单位供电成本,并保证供电企业的应得利润。

(3)为了促进居民节约用电,设置第三档及以上分档电量,此档电价水平除了涵盖单位供电成本,并保证供电企业应得利润外,还要弥补第一档用户没有承担的供电成本及其他管理成本。

阶梯式电价制度适用于政府定价且电力供不应求或供需基本平衡的市场条件,用以引导居民用户节约用电,促进节能减排。

⑨ <我是新手>C程序设计,使用switch指令编程实现阶梯电费计算,并输出相应结果。 求大神给程序。

#include<stdio.h>
int main()
{
int n = 2;
double a = 0;
printf("请输入用电度数:");
scanf("%lf", &a);
if ( a > 300 )
n = 0;
else
{
if ( a > 200 )
n = 1;
}
// shitch的参数严格来说是接受字符型的, 而case后面则应该接常量表达式, 你之前用的变量
switch( n )
{
case '0': printf ( "你应缴纳:%.2f\n" , ( a - 300 ) * 3 + 160 );
break;
case '1': printf("你应缴纳:%.2f\n", ( a - 200 ) * 0.6 + 100 );
break;
default:
printf("你应缴纳:%.2f\n", a * 0.5 );
}

return 0;
}
望采纳w

⑩ 阶梯式电费收费标准

现在很多地方都开始试行阶梯电价,就是根据使用的电量档次来决定电价。

第一档电量:不超过2刊千瓦时的电量,电价标准维持现价不变;对城乡“低保户”和农村“五保户”,设置每户每月15千瓦时的免费用电量。

第二档电量:241一400千瓦时之间的电量,电价标准比第一档电价提高0.05元/千瓦时。

第三档电量:超过400千瓦时的电量,电价标准比第一档电价提高0.3元/千瓦时。电价不是统一的,中国城市居民用电一般是0.5元左右一度,工业用电贵一点,农村电价更贵一点。国内各地的电价不是统一的,中国城市居民用电一般价格:0.52元-0.62元一度电,工业用电贵一点,价格:0.86-1.80元一度电。

月均用电量在第一档时,按照第一档单价计费;当月均用电量在第二档时,其中低于第二档的那部分用电量按照第一档单价计算,高于第一档的那部分用电量要按照第二档单价计算。二者之和才是此时的电费;以此类推。