1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | /* 2015.09.04 내용: 전기요금 계산 프로그램 키보드로 전기 사용량(kw)을 입력 받으면 사용 요금을 출력 계산식 : 기본요금 + (사용량 * kw당 요금) + 세금 세금은 전체 사용요금의 9% 임. [기본요금] [kw당 요금] 1~100kw => 370원 처음 100kw까지 : 52.0 ~200kw => 660 다음 100kw까지 : 88.5 ~300kw => 1130 다음 100kw까지 : 127.8 ~400kw => 2710 다음 100kw까지 : 184.3 ~500kw => 5130 다음 100kw까지 : 274.3 500kw 초과 => 9330 500kw초과 : 494.0 화면결과> 전기 사용량을 입력하세요(kw) : 270 이번 달 요금은 26297 원입니다. */ #include <stdio.h> int main() { int basic, tax, usedPower, switchPower, i; double mount = 0.0, all; int basicFee[] = { 370, 660, 1130, 2710, 5130 }; double utl[] = { 52.0, 88.5, 127.8, 184.3, 274.3, 494.0 }; printf("전기 사용량을 입력하세요(kw) (330) : "); scanf("%d", &usedPower); // 전기요금이 100단위로 나뉘므로 계산을 위해 100으로 나눔. 500이상은 5로 고정. // usedPower에서 1을 뺀 이유는 전기사용량 기준이 1~100까지이므로 -1로 기준을 0~99로 바꾸기 위함임. switchPower = (usedPower > 500) ? 5 : ((usedPower - 1) / 100); if (usedPower <= 0) // 사용량이 0이하일 경우 에러 발생 printf("잘못 입력하셨습니다. 다시 입력해주세요. \n"); else { if (switchPower == 0) // 사용량이 100kw 이하인 경우 { basic = basicFee[0]; mount = usedPower * utl[0]; } else { for (i = 0; i < switchPower; i++) // 반복문을 통해 사용량의 100단위까지 누적 계산한다. { mount += 100 * utl[i]; } if (usedPower > 500) // 500 이상인 경우 500이 넘는 부분과 기본요금을 계산 { mount += (usedPower - 500) * utl[5]; basic = basicFee[5]; } else // 나머지 사용량과 기본요금을 계산 { mount += (usedPower - (100 * switchPower)) * utl[switchPower]; basic = basicFee[switchPower]; } } all = basic + mount + ((basic + mount) * 0.09); printf("이번달 전기 사용량은 %dKW이며, 전기요금은 %.0lf원 입니다. \n", usedPower, all); } return 0; } | cs |
'미래(2015-2016) > 자습' 카테고리의 다른 글
피라미드 출력하기 (0) | 2015.09.08 |
---|---|
소수 출력하기 (0) | 2015.09.07 |
계산기 (0) | 2015.09.03 |
자판기 (0) | 2015.09.03 |
배열을 정렬하여 병합하기 (0) | 2015.09.01 |