#include <stdio.h>
#include <string.h>
int fampere(void);
double bscf(int cnt_amp);
double bscf(int cnt_amp);
int input_mater(void);
double mater_base_rate(int mater);
void output(int ampere, int mater, double basicfee, double materrate,
double tax, double total);
double amep(int cnt_amp);
int main() {
int ampere, total, mater;
double basicfee, materrate, tax;
for (;;) {
printf("契約アンペアの入力");
ampere = fampere();
if (ampere == EOF) {
return 0;
}
basicfee = bscf(ampere);
ampere = amep(ampere);
printf("使用電力量の入力");
mater = input_mater();
if (mater == EOF) {
return 0;
}
materrate = mater_base_rate(mater);
if (mater == 0)
basicfee /= 2;
tax = (basicfee + materrate) * 0.05;
total = basicfee + materrate + tax;
output(ampere, mater, basicfee, materrate, tax, total);
}
}
int fampere(void) {
int cntamp[][2] = { { 10, 260 }, { 15, 390 }, { 20, 520 }, { 30, 780 }, {
40, 1040 }, { 50, 1300 }, { 60, 1560 } };
int i = 0;
int tmp_ampere;
while (scanf("%d", &tmp_ampere) != EOF) {
for (i = 0; i < 7; i++) {
if (cntamp[i][0] == tmp_ampere) {
return i;
}
}
printf("error input again\n");
}
return EOF;
}
double amep(int cnt_amp) {
int cntamp[][2] = { { 10, 260 }, { 15, 390 }, { 20, 520 }, { 30, 780 }, {
40, 1040 }, { 50, 1300 }, { 60, 1560 } };
return (double) cntamp[cnt_amp][0];
}
double bscf(int cnt_amp) {
int cntamp[][2] = { { 10, 260 }, { 15, 390 }, { 20, 520 }, { 30, 780 }, {
40, 1040 }, { 50, 1300 }, { 60, 1560 } };
return (double) cntamp[cnt_amp][1];
}
int input_mater(void) {
int yourmater;
while (scanf("%d", &yourmater) != EOF) {
if (yourmater >= 0 && yourmater <= 900)
return yourmater;
else
printf("error input again\n");
}
return EOF;
}
double mater_base_rate(int mater) {
double materbaserate;
if (mater <= 120) {
materbaserate = mater * 17.02;
}
if (mater > 120 && 300 >= mater) {
materbaserate = 120 * 17.02 + (mater - 120) * 21.77;
}
if (mater > 300) {
materbaserate = 120 * 17.02 + (300 - 120) * 21.77 + (mater - 300);
}
if (materbaserate < 216.30)
materbaserate = 216.30;
return materbaserate;
}
void output(int ampere, int mater, double basicfee, double materrate,
double tax, double total) {
printf(
"契約アンペア %d\n使用電力量 %.2d\n基本料金 %.2f\n従量電気料金 %.2f\n消費税 %.2f\n電気料金%.2f\n",
ampere, mater, basicfee, materrate, tax, total);
}