自定义函数c语言水费 c语言中的自定义函数( 二 )


{
user[i]=inlinebuf[j];
i++;
}
else
{
user[i]='\0';
flagnum++;//表示之前获取的是住户 , 下两个数据分别获取用水量与用电量
i=0;
}
break;
case 1://用水量
if(inlinebuf[j] != ' 'inlinebuf[j] != '\t')
{
waterNum[i]=inlinebuf[j];
i++;
}
else
{
waterNum[i]='\0';
weishuflag=i;//表示当前数据的位数,住户、用水量、用电量均限制为三位数以内
flagnum++;//表示下个数据获取的是用电量
if(weishuflag == 1)
{
WaterNum = waterNum[0] - 48;
}
else if(weishuflag == 2)
{
WaterNum = (waterNum[0] - 48)*10 + (waterNum[1] - 48);
}
else
{
WaterNum = (waterNum[0] - 48)*100 + (waterNum[1] - 48)*10 + (waterNum[2] - 48);
【自定义函数c语言水费 c语言中的自定义函数】}
i=0;
weishuflag = 0;
}
break;
case 2://用电量
if(inlinebuf[j] != ' 'inlinebuf[j] != '\t')
{
elecNum[i]=inlinebuf[j];
i++;
}
else
{
elecNum[i]='\0';
weishuflag=i;//表示当前数据的位数,住户、用水量、用电量均限制为三位数以内
flagnum = 0;//表示一行三个数据获取完毕
if(weishuflag == 1)
{
ElecNum = elecNum[0] - 48;
}
else if(weishuflag == 2)
{
ElecNum = (elecNum[0] - 48)*10 + (elecNum[1] - 48);
}
else
{
ElecNum = (elecNum[0] - 48)*100 + (elecNum[1] - 48)*10 + (elecNum[2] - 48);
}
i=0;
weishuflag = 0;
}
break;
default:
break;
}
j++;
}
waterPrice = (float)WaterNum * 1.5;
elecPrice = (float)ElecNum * 0.5;
printf("The user == %s,waterNum == %d,elecNum == %d\n",user,WaterNum,ElecNum);//打印用户,用水量,用电量
printf("The user == %s,waterPrice == %.1f,elecPrice == %.1f\n\n",user,waterPrice,elecPrice);//打印用户,水费 , 电费
sprintf(outlinebuf,"%3s \t\t%4.1f \t\t%4.1f\n",user,waterPrice,elecPrice);
fputs(outlinebuf, fp2);//写入每一行数据(数据格式为 住户 + 水费 + 电费)
memset(outlinebuf,0,sizeof(outlinebuf));
memset(inlinebuf,0,sizeof(inlinebuf));
n=0;//一行数据处理结束,开始新的一行
}
m++;
}
fclose(fp1);
fclose(fp2);
return 0;
}
input.dat(每一行数据分别为住户 用水量 用电量,以空格或tab键隔开,且每行数据必须以回车结尾)
101 5 150
201 4 90
301 4 120
401 3 78
501 4 60
601 6 105
charge.dat (输出文件格式如下)
住户水费电费
1017.575.0
2016.045.0
3016.060.0
4014.539.0
5016.030.0
6019.052.5
编写c程序,从键盘输入某宿舍楼6家住户某月的水电消耗量及水费和电费标准,计算各户应交纳的水费和电费你的问题中没有表格2,只好按照自己格式了
下边是原数据
下边是输出数据
在DEV C++上测试通过,某些行太长,被百度截成了两行,自行恢复即可
#includestdio.h
#include stdlib.h
int main()
{
FILE *input,*charge;
float a,b;
int i;
struct
{
int num;
int count1;
int count2;
float sum;
}id[6];
input=fopen("input.dat","r+");
if(input == NULL)
{
printf("Open file error!\n");
return 1;
}
fscanf(input,"%f%f",a,b);
printf("NO.\tcount1\tcount2\n");
for(i=0;i6;i++)
{
fscanf(input,"%d%d%d",id[i].num,id[i].count1,id[i].count2);
printf("%d \t %d \t %d\n",id[i].num,id[i].count1,id[i].count2);
}
fclose(input);
charge=fopen("charge.dat","a+");
if(charge == NULL)

推荐阅读