Search Results

Search found 1 results on 1 pages for 'tryt'.

Page 1/1 | 1 

  • checking every digit in a number for oddness

    - by tryt
    Hello. I was writing a function which checks if every digit in a number is odd. I came accross this weird behaviour. Why does the second function return different (incorrect) results, eventhough its basically the same? (implemented in an opposite way) #include <stdio.h> int all_odd_1(int n) { if (n == 0) return 0; if (n < 0) n = -n; while (n > 0) { if (n&1 == 1) n /= 10; else return 0; } return 1; } int all_odd_2(int n) { if (n == 0) return 0; if (n < 0) n = -n; while (n > 0) { if (n&1 == 0) return 0; else n /= 10; } return 1; } int main() { printf("all_odd_1\n"); printf("%d\n", all_odd_1(-131)); printf("%d\n", all_odd_1(121)); printf("%d\n", all_odd_1(2242)); printf("-----------------\n"); printf("all_odd_2\n"); printf("%d\n", all_odd_2(131)); printf("%d\n", all_odd_2(121)); printf("%d\n", all_odd_2(2242)); return 0; }

    Read the article

1