• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

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

22.04.27 21:00 작성 조회수 349

0

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

답변 3

·

답변을 작성해보세요.

0

tgyh0716님의 프로필

tgyh0716

질문자

2022.04.28

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

강민철님의 프로필

강민철

2022.04.28

코드에 오타가 있습니다

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

위 코드가 아니라

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

위 코드입니다.

 

tgyh0716님의 프로필

tgyh0716

질문자

2022.04.29

아..감사합니다!

0

강민철님의 프로필

강민철

2022.04.28

안녕하세요,

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

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

tgyh0716님의 프로필

tgyh0716

질문자

2022.04.28

#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

질문자

2022.04.27

추가적으로

const bool even = (number % 2 == 0) ? True : False;

로 바꿔보니 

재정의.형식 한정자가 다르다는 메시지가 나오며

printf 출력이 불가합니다..

강민철님의 프로필

강민철

2022.04.28

아래 코드와 비교해보세요.

 

#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;

}