if 문으로 만든 문제를 switch문으로 바꾸는중인데.....
하람
if문
#include stdio.h
int main(void)
{
int a,b,c;
printf(입장권을 선택해 주세요(1=자유이용권 / 2=입장권) : );
scanf(%d,&a);
printf(나이를 입력해주세요 : );
scanf(%d,&b);
printf(시간를 입력해주세요(0~24시) : );
scanf(%d,&c);
if(a==1)
if(c17)
if(3=b && b=12)
printf(25,000원);
else if(b=65)
printf(25,000원);
else
printf(34,000원);
else
if(3=b && b=12)
printf(21,000원);
else if(b=65)
printf(21,000원);
else
printf(29,000원);
else
if(c17)
if(3=b && b=12)
printf(20,000원);
else if(b=65)
printf(20,000원);
else
printf(27,000원);
else
if(3=b && b=12)
printf(17,000원);
else if(b=65)
printf(17,000원);
else
printf(23,000원);
return 0;
}
구분 대인 소인 (3~12/65세이상)
자유이용권(주간) 34000 25000
자유이용권(야간 오후5시 이후)29000 21000
입장권(주간)27000 20000
입장권(야간 오후5시 이후) 23000170000
switch문#include stdio.h
int main(void)
{
int a,b,c;
printf(입장권을 선택해 주세요(1=자유이용권 / 2=입장권) : );
scanf(%d,&a);
printf(나이를 입력해주세요 : );
scanf(%d,&b);
printf(시간를 입력해주세요(0~24시) : );
scanf(%d,&c);
switch(a)
{
case 1:
switch(b)
{
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
switch(c)
{
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
printf(25,000원\n);
break;
default:
printf(21,000원\n);
break;
}
}
}
}
이쪽 까지만했대도 어지럽고 줄수만 많네요
case 1~4 이렇게 범위를 잡거나
다른 간단하게 할수있는 방법은 없나요 ??
-
걸때
;; 13살도 3으로 나누면 나머지 1 14살도 3으로 나누면 나머지 2 ;;; 쭉~ 이렇게 되서 다되지 않나요?
-
라
3살부터 12살까지는 3으로 나누면 나머지가 각각 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 이렇게 나오고요.
65살부터도 저렇게 나올 겁니다.
그럼 switch(b)를 switch(b%3)으로 고치고 case는 0, 1, 2로 하면 되겠지요?