본문 바로가기

기타/it

c언어-조건문 나이에 따라 입장료 다르게 받는 프로그램 [문제풀이/ 소스코드 ]

반응형



문제 ) 영화관의 기본 입장료는 10,000원 인데 . 나이가 65세 이상이면 경로우대로 요금의 10%를 할인받고 6세이하는 무료 7세부터 18세까지는 청소년 요금이 적용되어 20%의 요금을 할인 받는다 . !! 


문제분석) 대부분 문제만 보고도 조건문이라는 것을 알수있을것이다 조건이 세가지로 나누어져 있기때문에 조건은 3개 if ,else if ,else 로 구분 짓자 

그리고 입력받은 age(나이)에 따라 할인율을 적용하는 방법은 간단하다 .


그이외에 이 문제에서 주의할점은 몇가지 없다 

보통 10% 할인을 어떻게 수식으로 나타낼것인가에 대해 초보자들은 어버버 거릴수도 있지만 생각보다 간단하다 

10%할인하면 결론적으로 가격은 총 100에서 90이 되는데  원가에 0.9를 곱하면 원가에서 10% 할인된 금액이 나오고 마찬가지로 0.8을 곱하면 20%할인 반대로 10%를 더받는 경우에는 1.1을 곱해주면된다 보통 연체료를 받는 프로그램이나 은행이자를 구하는 문제에서 적용이 가능하겠다 이때 주의할점은 실수형으로 가격을 입력받아야한다는점 !

예를들어 100만원에 0.9를 곱했는데 변수가 정수형이면 값이 0으로 나와버리는 불상사가 생길수가있음 ! 

그리고 7세부터 19세까지의 범위를 나타낼때는 논리연산자 &&를 이용할것 ! 


소스코드 )

#include<stdio.h>


main()

{

int age;

double price = 10000;

printf("영화관의 기본입장료는 10,000원 입니다\n나이에 따라 금액이 달라집니다 몇살이신지요? : ");

scanf("%d", &age);


if (age >= 65) {

printf("경로우대 요금이 적용되어 %f원 입니다", price*0.9);

}

else if (age >= 7 && age <= 18) {

printf("학생 요금이 적용되어 %f원 입니다", price*0.8);

}

else

printf("6세이하는 %f원 무료 입니다", price * 0);

}




결과창)

박물관의 기본입장료는 10,000원 입니다

나이에 따라 금액이 달라집니다 몇살이신지요? : 66

경로우대 요금이 적용되어 9000.000000원 입니다

C:\Users\ASUS\source\repos\ConsoleApplication11\Debug\ConsoleApplication11.exe(5600 프로세스)이(가) 0 코드로 인해 종료되었습니다.

이 창을 닫으려면 아무 키나 누르세요.



박물관의 기본입장료는 10,000원 입니다
나이에 따라 금액이 달라집니다 몇살이신지요? : 6
6세이하는 0.000000원 무료 입니다
C:\Users\ASUS\source\repos\ConsoleApplication11\Debug\ConsoleApplication11.exe(6080 프로세스)이(가) 0 코드로 인해 종료되었습니다.
이 창을 닫으려면 아무 키나 누르세요.


박물관의 기본입장료는 10,000원 입니다

나이에 따라 금액이 달라집니다 몇살이신지요? : 8

학생 요금이 적용되어 8000.000000원 입니다

C:\Users\ASUS\source\repos\ConsoleApplication11\Debug\ConsoleApplication11.exe(14720 프로세스)이(가) 0 코드로 인해 종료 되었습니다.

이 창을 닫으려면 아무 키나 누르세요.



반응형