인프런 커뮤니티 질문&답변
bool even이 무슨 값을 입력해도 if문 진입시 false로 바뀝니다...
해결된 질문
작성
·
580
0
10을 입력하고 true값이 if로 들어가자마자 false로 바뀝니다...
퀴즈
C언어에서 `if-else` 문을 사용할 때, 참 또는 거짓 조건에 따라 무엇이 보장될까요?
두 개의 명령문 블록이 모두 실행됩니다.
두 개의 명령문 블록 중 정확히 하나만 실행됩니다.
컴파일러 오류가 발생하여 프로그램 실행이 중지됩니다.
조건과 관계없이 첫 번째 블록만 실행됩니다.
답변 3
0
tgyh0716
질문자
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
int main()
{ int a = 1, b = 2;
int max = (a > b) ? a : b;
int number;
scanf("%d", &number);
bool iseven;
iseven = (number & 2 == 0) ? true : false;
if (iseven) {
printf("Even");
}
else {
printf("Odd");
}
return 0;
}
0
tgyh0716
질문자
추가적으로
const bool even = (number % 2 == 0) ? True : False;
로 바꿔보니
재정의.형식 한정자가 다르다는 메시지가 나오며
printf 출력이 불가합니다..
아래 코드와 비교해보세요.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
int main()
{
int number;
scanf("%d", &number);
const bool iseven = (number % 2 == 0) ? true : false;
if (iseven) {
printf("Even");
}
else {
printf("Odd");
}
return 0;
}





코드에 오타가 있습니다
iseven = (number & 2 == 0) ? true : false;
위 코드가 아니라
iseven = (number % 2 == 0) ? true : false;
위 코드입니다.