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

kbj0619님의 프로필 이미지
kbj0619

작성한 질문수

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

7.9 함수 포인터

저도 isEven 할 떄 0부터 9까지 다 나오네여;;

작성

·

230

0

isodd는 정상대로 홀수만 나오는데, iseven은 다 출력되네여;

 

#include <iostream>

#include <array>

 

using namespace std;

 

bool isEven(const int& number)

{

if (number % 2 == 0)

{

return true; 

}

}

bool isOdd(const int& number)

{

if (number % 2 != 0)

{

return true;

}

}

void printNumbers(const array<int, 10>& my_array, bool (*check_fcn)(const int&))

{

for (auto n : my_array)

{

if (check_fcn(n) == true)

{

cout << n;

}

}

cout << endl;

}

 

 

int main()

{

array<int, 10> my_array = { 0,1,2,3,4,5,6,7,8,9};

 

printNumbers(my_array, isOdd);

printNumbers(my_array, isEven);

 

return 0;

}

 

다른 분도 그러는거 같은데 컴퓨터 마다 다른건가요??

답변 3

1

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

else return false를 또 붙여야하는군요...

신기하네여 isodd는 됐었는데..

0

안녕하세요 :)

아래와 같이 작성해주시기 바랍니다.

함수에서 리턴해주는 값이 일정하지 않아 생긴 문제 같습니다.

bool isEven(const int& number)
{
	if (number % 2 == 0)
	{
		return true;
	}
	return false;
}

bool isOdd(const int& number)
{
	if (number % 2 != 0)
	{
		return true;
	}
	return false;
}

 

감사합니다.

 

0

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

보니깐, 디버그를 x86로 바꾸면 되긴하네여;;;

x64에서는 안되는겁니까?

kbj0619님의 프로필 이미지
kbj0619

작성한 질문수

질문하기