# Thread: FAQ: How to test whether integer is even or odd

1. ## FAQ: How to test whether integer is even or odd

Hi. I need to write a function that tests whether an integer is even or not. This is how far I've got. I wasn't sure if its best to use an 'if' statement in the function.

Code:
```/* a function that tests whether an integer is even, returning a true or false

#include <iostream>

using namespace std;

int main()
{
int n = 0;

cout << "Enter a number: ";
cin >> n;

cout << test(n) << endl;

return 0;
}

int test(int n)
{
if (n```
cheers. 2. mod by two.

variable = variable % 2; 3. Code:
```#include <iostream>

int main()
{
int val;

std::cout<<"Enter a number: ";
std::cin>> val;

if ( val % 2 == 0 )
std::cout<< val <<" is even"<<std::endl;
else
std::cout<< val <<" is odd"<<std::endl;
}```
-Prelude 4. Or, if you want to optimize just do:

Value & 1

if the result of the expression is true then the number was odd, if false, then the number was even 5. hmm, both seem about the same imo, i had only ever learned the modulous way of doing it. 6. Bitwise operations are faster than division, multiplication, addition, subtraction because it's just a quick check on the bits. 7. thnx for the knowledge. 8. I tried the following:

Code:
```/* a function that tests whether an integer is even, returning a true or false

#include <iostream>

using namespace std;

int evenTest(int);

int main()
{
int n = 0;

cout << "Enter a number: ";
cin >> n;

cout << evenTest(n) << endl;

return 0;
}

int evenTest(int n)
{
if (n % 2 == 0)
cout << n << " is even" << endl;
else
cout << n << " is odd" << endl;
}```
It generates the following output:

Code:
```Enter a number: 10
10 is even
98476```
Why is 98476 generated?
Also, Polymorphic OOP, how would I implement Value & 1 ? 9. It's result is 1 if it's odd and 0 if it's even

so

Code:
`std::cout << "Value is " << ( Value & 1 ? "odd" : "even" );` 10. Originally posted by giggsy
Why is 98476 generated?
Because you are "cout"ing the value that evenTest returns (which is garbage cuz you didn't return anything.

What you should do is:

Code:
```/* a function that tests whether an integer is even, returning a true or false

#include <iostream>

using namespace std;

bool evenTest(int);

int main()
{
int n = 0;

cout << "Enter a number: ";
cin >> n;

cout << n << " is " << ( evenTest(n) ? "even" : "odd" ) << endl;

return 0;
}

inline bool evenTest(int n)
{
return n % 2 == 0;
}``` 11. Originally posted by giggsy
I tried the following:

Code:
```/* a function that tests whether an integer is even, returning a true or false

#include <iostream>

using namespace std;

int evenTest(int);

int main()
{
int n = 0;

cout << "Enter a number: ";
cin >> n;

cout << evenTest(n) << endl;

return 0;
}

int evenTest(int n)
{
if (n % 2 == 0)
cout << n << " is even" << endl;
else
cout << n << " is odd" << endl;
}```
It generates the following output:

Code:
```Enter a number: 10
10 is even
98476```
Why is 98476 generated?
Also, Polymorphic OOP, how would I implement Value & 1 ?
That random number is generated because you're printing the result of a function which is supposed to return an int, but actually returns nothing. 12. Code:
```const char* EvenOrOdd( int value)
{
if(value&1) return"odd";
return "even";
}``` Popular pages Recent additions 