fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <stdbool.h>
  4.  
  5. #define NUMBERS_SIZE 10
  6.  
  7. typedef bool (*number_validator)(int num);
  8.  
  9. bool isEven(int num)
  10. {
  11. return (num & 1) == 0;
  12. }
  13.  
  14. bool isOdd(int num)
  15. {
  16. return (num & 1) != 0;
  17. }
  18.  
  19. void print(const char *title, int *array, int array_size, number_validator isValid)
  20. {
  21. printf("%s", title);
  22. bool first = true;
  23. for (int i = 0; i < array_size; ++i)
  24. {
  25. if (isValid(array[i]))
  26. {
  27. if (!first)
  28. {
  29. printf(", ");
  30. }
  31. printf("%d", array[i]);
  32. first = false;
  33. }
  34. }
  35. printf("\n");
  36. }
  37.  
  38. int main()
  39. {
  40. int numbers[NUMBERS_SIZE] = { 0 };
  41.  
  42. for (int i = 0; i < NUMBERS_SIZE; i++)
  43. {
  44. printf("Enter a number: ");
  45. scanf("%d", &numbers[i]);
  46. }
  47.  
  48. printf("\n");
  49. print("Even: ", numbers, NUMBERS_SIZE, isEven);
  50. print(" Odd: ", numbers, NUMBERS_SIZE, isOdd);
  51.  
  52. return 0;
  53. }
  54.  
Success #stdin #stdout 0s 5008KB
stdin
1 2 3 4 5 6 7 8 9 10
stdout
Enter a number: Enter a number: Enter a number: Enter a number: Enter a number: Enter a number: Enter a number: Enter a number: Enter a number: Enter a number: 
Even: 2, 4, 6, 8, 10
 Odd: 1, 3, 5, 7, 9