View Full Version : Program for even and odd numbers
Quboid
Dec 14, 2006, 02:31 PM
hello all,
My final programming exam is tomorrow. And i am practiciing at this moment. Just a quick question, how do write the code to figure out if a number is even or not even. I have it theoretically as finding the mode 2 of the number and test to see if it is zero. but the mod function doesn't work on my xcode compiler. I tried using the % command (a%b) but that doesn't work either.
PS. I am programmnig in C.
thanks
hanschien
Dec 14, 2006, 02:48 PM
hello all,
My final programming exam is tomorrow. And i am practiciing at this moment. Just a quick question, how do write the code to figure out if a number is even or not even. I have it theoretically as finding the mode 2 of the number and test to see if it is zero. but the mod function doesn't work on my xcode compiler. I tried using the % command (a%b) but that doesn't work either.
PS. I am programmnig in C.
thanks
if(number%2==0)
Eraserhead
Dec 14, 2006, 03:31 PM
You need to add
#include <stdio.h>
#include <stdlib.h>
in XCode for modulus to work ;).
savar
Dec 14, 2006, 03:42 PM
hello all,
My final programming exam is tomorrow. And i am practiciing at this moment. Just a quick question, how do write the code to figure out if a number is even or not even. I have it theoretically as finding the mode 2 of the number and test to see if it is zero. but the mod function doesn't work on my xcode compiler. I tried using the % command (a%b) but that doesn't work either.
PS. I am programmnig in C.
thanks
The word is modulo (or modulus)...its actually an operator (not a command).
Anyway, in C the modulo operator is '%', so (a%b) evaluates to r, where r is the remainder after performing integer division of a by b.
elfin buddy
Dec 14, 2006, 03:47 PM
I personally find Xcode horrible for writing in C. I just use a text editor in the terminal and the GCC program to compile. Works like a charm :)
Still, I don't think you need to add a #include <stdlib.h> line for it to work in Xcode. I just tested the following code under a C Tool project in Xcode, and it ran perfectly:
#include <stdio.h>
int main(void)
{
int a;
int b;
int c;
b = 2;
printf("Please enter the number to check: ");
scanf("%d", &a);
c = a % b;
if (c == 0)
{
printf("%d is even.\n", a);
}
else
{
printf("%d is odd.\n", a);
}
return(0);
}
But, whatever works, eh?
Doctor Q
Dec 14, 2006, 04:11 PM
Even if you didn't know about the % operator, you could test parity (even/odd-ness) using integer arithmetic.
If i is an integer, this test would do it:int j = ( i >= 0 ? i : -i ) ;
if ( j/2 == (j+1)/2 )
printf("%d is even\n",i) ;
else
printf("%d is odd\n",i) ;In integer arithmetic, 0/2 and 1/2 are 0, 2/2 and 3/2 are 1, 4/2 and 5/2 are 2, and so on.
bronxbomber92
Dec 14, 2006, 04:36 PM
You could go into good 'ole bitwise operators also!
But I won't go into that....;)
atszyman
Dec 14, 2006, 04:49 PM
You could go into good 'ole bitwise operators also!
But I won't go into that....;)
why not?
if (number&0x1 == 1)
printf("number is odd/n");
else
printf("number is even/n");
Doctor Q
Dec 14, 2006, 05:21 PM
My example didn't work for negative integers, so I edited the post above to fix it. I don't win any points for bug-free programming today.
bronxbomber92
Dec 14, 2006, 08:10 PM
why not?
if (number&0x1 == 1)
printf("number is odd/n");
else
printf("number is even/n");
Because Quboid probably hasn't gotten into bitwise operators yet. :p
( excuse me if I'm wrong )
gekko513
Dec 14, 2006, 08:24 PM
why not?
if (number&0x1 == 1)
printf("number is odd/n");
else
printf("number is even/n");
<pedant>
== has precedence over &, so you're actually just saying if (number&(1==1)) ... which happens to give the right answer because true (1==1) is usually set to 1, maybe it's even defined to be 1 in C, but I don't know for sure.
if (number&1) is sufficient, but if ((number&0x1) == 1) is probably more readable while also doing what you think it does.
</pedant>
Sorry, Quboid, for digressing.
Eraserhead
Dec 15, 2006, 09:12 AM
Still, I don't think you need to add a #include <stdlib.h> line for it to work in Xcode.
You're probably right, I was doing it in Cocoa, and don't want to check in the program itself which C libraries are required, as having either seemed to be OK to the compilier.
Nutter
Dec 15, 2006, 09:22 AM
if (number&1) is sufficient, but if ((number&0x1) == 1) is probably more readable while also doing what you think it does.
Surely you mean if ((number&0x1) == YES)?
:-)
Eraserhead
Dec 15, 2006, 12:00 PM
Surely you mean if ((number&0x1) == YES)?
:-)
No, because, the YES, NO thing is only for Objective-C, not real C.
Quboid
Dec 15, 2006, 02:22 PM
Thanks a million guys, i had the exam today and got exempted......i ahve a prject to finish though. Looking for some help.
gekko513
Dec 15, 2006, 04:10 PM
Surely you mean if ((number&0x1) == YES)?
:-)
No, because, the YES, NO thing is only for Objective-C, not real C.
And more importantly if ((number&0x2) == YES) wouldn't work for if ((number&0x2) == 0x2) or just if (number&2).
MarkCollette
Dec 15, 2006, 08:08 PM
Come on guys, we can still take it up a notch :)
#include <stdio.h>
int main(int argc, char *argv[]) {
char *even_odd_index[] = { "even\n", "odd\n" };
char *even_odd_offset = "even\n\0\0\0odd\n";
int val = 5;
printf( even_odd_index[val & 0x01] );
printf( &even_odd_offset[(val & 0x01)<<3] );
}
MrFrankly
Dec 16, 2006, 10:08 AM
I couldn't help but create my own little 1-line-app version of odd and even - nothing new which hasn't be posted yet, just wrapped into a runnable program.
#include "stdio.h"
int main (int argc, char ** argv) {
return printf("the number %s is %s", argv[1], atoi(argv[1]) & 1 ? "odd" : "even") < 0;
}
Nutter
Dec 17, 2006, 10:19 AM
No, because, the YES, NO thing is only for Objective-C, not real C.
I stand corrected. It just seems inelegant to me to have to make the assumption that logical truth == 1, as safe as that assumption may be.
And more importantly if ((number&0x2) == YES) wouldn't work for if ((number&0x2) == 0x2) or just if (number&2).
Oh yeah. I forgot that we weren't actually testing a Boolean result. My point is rendered rather pointless in this case...
cblackburn
Dec 18, 2006, 05:39 PM
I couldn't help but create my own little 1-line-app version of odd and even - nothing new which hasn't be posted yet, just wrapped into a runnable program.
Someone needs to write an asm version! :D
Chris
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.