인프런 커뮤니티 질문&답변

tgyh0716님의 프로필 이미지
tgyh0716

작성한 질문수

홍정모의 따라하며 배우는 C언어

7.9 조건 연산자

bool even이 무슨 값을 입력해도 if문 진입시 false로 바뀝니다...

해결된 질문

작성

·

523

0

10을 입력하고 true값이 if로 들어가자마자 false로 바뀝니다...

답변 3

0

tgyh0716님의 프로필 이미지
tgyh0716
질문자

주석 제외 이렇게 했습니다!

코드에 오타가 있습니다

iseven = (number & 2 == 0) ? true : false;

위 코드가 아니라

iseven = (number % 2 == 0) ? true : false;

위 코드입니다.

 

tgyh0716님의 프로필 이미지
tgyh0716
질문자

아..감사합니다!

0

안녕하세요,

입력하신 코드 전문을 이 곳에 첨부해주세요.

그럼 제가 어떤 부분이 문제였는지 봐드리겠습니다 :)

tgyh0716님의 프로필 이미지
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님의 프로필 이미지
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;

}
tgyh0716님의 프로필 이미지
tgyh0716

작성한 질문수

질문하기