반응형
6장 '조건문' Exercise 풀이
5번 Solution(switch문은 if-else문으로, if-else문은 switch문으로 변경하라)
[문제 (a)]
if( x == -1 )
num--;
else if( x == 1 )
num++;
else
num = 0;
[변경 코드]
switch(x)
{
case -1:
num--;
break;
case 1:
num--;
break;
default:
num = 0;
break;
}
[문제 (b)]
switch(code)
{
case 'X':
x++;
break;
case 'Y':
y++;
break;
default:
x=y=0;
break;
}
[변경 코드]
if( code == 'X' )
x++;
else if( code == 'Y' )
y++;
else
x = y = 0;
6번 Solution(2개의 if문을 논리 연산자를 사용하여 하나의 if문으로 수정하라.)
[문제 (a)]
if( x > 10 )
if( x <20 )
printf("%d\n", x);
[변경 코드]
if( x > 10 && x < 20)
printf("%d\n", x);
[문제 (b)]
if( x < 10 )
printf("%d\n", x);
if( x > 20 )
printf("%d\n", x);
[변경 코드]
if( x < 10 || x > 20 )
printf("%d\n", x);
8번 Solution(다음 문장의 오류(문법적 오류, 논리적 오류)를 찾아 모두 수정하라.)
[문제 (a)]
if( age > 18 );
printf("성인\n");
else
printf("청소년\n";
[오류 수정]
if( age > 18 ) // if문은 세미콜론이 없어야 함
printf("성인\n");
else
printf("청소년\n");
[문제 (b)]
if( 0 <= age <= 18 )
printf("청소년\n");
[오류 수정]
if ( age>= 0 && age <= 18 ) // if문장의 and는 && 사용
printf("청소년\n");
else ... // if문은 else문장이 추가되어야 함
[문제 (c)]
if( x = 0 )
printf("x는 0이다.\n");
[오류 수정]
if( x == 0 ) // 서로 같다의 관계연산자는 ==이다.
printf("x는 0이다.\n");
else ... // if문은 else 문장이 추가되어야 함.
[문제 (d)]
if( speed > 120 )
printf("벌금 6만원\n");
else ( speed > 150 )
printf("벌금 9만원\n");
else
printf("OK\n");
[오류 수정]
if( speed > 150 ) // 속도위반이 큰 것부터 순서대로 하는 것이 논리적으로 맞다.
printf("벌금 9만원\n");
else if( speed > 120 ) // if문과 else문 사이에 조건이 2개 이상일 경우 else if를 사용한다.
printf("벌금 6만원\n");
else // else문은 1개여야 한다.
printf("OK\n");
[문제 (e)]
if( score > 90 )
printf("장학금\n");
printf("우등\n");
else
printf("좀더 노력하세요\n");
[오류 수정]
if( score > 90 )
{ // 여러개의 문장이 실행되어야 하는 복합문은 중괄호를 사용한다.
printf("장학금\n");
printf("우등\n");
}
else
printf("좀더 노력하세요\n");
[문제 (f)]
if( x > 0 )
if( y > 0 )
printf("x와 y는 모두 양수\n");
else
printf("x가 양수가 아님.\n");
[오류 수정]
if( x > 0 )
{ // "x가 양수가 아님"은 x > 0의 else 문장이기 때문에 가운데 문장은 중괄호를 해준다.
if( y > 0 )
printf("x와 y는 모두 양수\n");
}
else
printf("x가 양수가 아님.\n");
[문제 (g)]
if( age > 0 | age <= 18 )
printf("청소년\n");
[오류 수정]
if( age > && age <= 18 ) // 0보다 크고 18이하의 조건이므로 and 연산자 &&를 사용한다.
printf("청소년\n");
[문제 (h)]
int tiger=3;
switch(animal)
{
case tiger:
...
}
[오류 수정]
int tiger=3;
switch(animal)
{
case 3: // case에는 정수형이 들어가야 하고, 변수 이름을 사용할 수 없다.
...
}
반응형
'프로그래밍 > C언어' 카테고리의 다른 글
[쉽게 풀어쓴 C언어 Express] 6장 Programming 풀이 (0) | 2022.10.17 |
---|---|
[쉽게 풀어쓴 C언어 Express] 5장 Programming 풀이 (0) | 2022.08.29 |
[쉽게 풀어쓴 C언어 Express] 5장 Exercise 풀이 (0) | 2022.08.10 |
[쉽게 풀어쓴 C언어 Express] 개정 3판 4장 Programming 풀이 (0) | 2022.07.30 |
[쉽게 풀어쓴 C언어 Express] 개정 3판 4장 Exercise 풀이 (0) | 2022.07.24 |
댓글