[問題] 使用位元運算判斷奇數偶數
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題:
使用位元運算的方式來判斷輸入之整數為奇數或是偶數,
其中使用if函數來判斷的時候發生問題。
希望得到的正確結果:
奇數跑odd、偶數跑even
程式跑出來的錯誤結果:
不管是奇數還是偶數都跑出odd
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
有問題的code: (請善用置底文標色功能)
01 int main(void)
02 {
03 int a,b,c;
04 b = 0;
05 printf("Input num:");
06 scanf(" %d",&a);
07 putchar('\n');
08 c=a|b;
09 if(c==0)
10 printf("Num:%d is even.\n",a);
11 else
12 printf("Num:%d is odd.\n",a);
13 system("PAUSE");
14 return 0;
15 }
如果將09行改成c==1且10跟12的even、odd調換,那麼會有正確的結果。
但是我想不通為什麼照上面這樣子會發生錯誤。
補充說明:
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.222.65
推
10/31 02:09, , 1F
10/31 02:09, 1F
→
10/31 02:16, , 2F
10/31 02:16, 2F
推
10/31 02:17, , 3F
10/31 02:17, 3F
→
10/31 02:19, , 4F
10/31 02:19, 4F
→
10/31 02:20, , 5F
10/31 02:20, 5F
→
10/31 02:20, , 6F
10/31 02:20, 6F
推
10/31 07:09, , 7F
10/31 07:09, 7F
→
10/31 09:31, , 8F
10/31 09:31, 8F
→
10/31 12:02, , 9F
10/31 12:02, 9F
→
10/31 12:03, , 10F
10/31 12:03, 10F
→
10/31 12:08, , 11F
10/31 12:08, 11F
→
10/31 12:15, , 12F
10/31 12:15, 12F
→
10/31 12:15, , 13F
10/31 12:15, 13F
→
10/31 12:20, , 14F
10/31 12:20, 14F
→
10/31 12:31, , 15F
10/31 12:31, 15F
→
10/31 12:33, , 16F
10/31 12:33, 16F
→
10/31 12:33, , 17F
10/31 12:33, 17F
→
10/31 12:34, , 18F
10/31 12:34, 18F
→
10/31 12:38, , 19F
10/31 12:38, 19F
推
10/31 13:05, , 20F
10/31 13:05, 20F
→
10/31 13:05, , 21F
10/31 13:05, 21F
→
10/31 14:08, , 22F
10/31 14:08, 22F
推
11/01 21:49, , 23F
11/01 21:49, 23F
→
11/01 21:50, , 24F
11/01 21:50, 24F