Advertisement
LilChicha174

Untitled

Apr 21st, 2022
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.24 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5.  
  6. int Integer(const void* a){
  7.     int i = *((const int *) a);
  8.  
  9.     if(i % 2 == 0) return 1;
  10.     return 0;
  11. }
  12.  
  13.  
  14. int Float(const void* a){
  15.     double i = *((const double*)a);
  16.  
  17.     if(i < 0) i *= -1;
  18.  
  19.     int j = (int)i;
  20.     return (i - j < 0.000001) && (j % 2 == 0);
  21. }
  22.  
  23. int count_if(void *arr, int size, int k, int (*func)(const void *a)){
  24.     int count = 0;
  25.    
  26.  
  27.     for(int i = 0; i < k; ++i){
  28.         if(func(arr + i*size)){
  29.             ++count;
  30.         }
  31.     }
  32.  
  33.     return count;
  34. }
  35.  
  36.  
  37. int main(){
  38.     int flag;
  39.     scanf("%d", &flag);
  40.  
  41.     if(flag == 0) {
  42.         int chaika_loh[20];
  43.         int maks_krasava = 0;
  44.         char c;
  45.  
  46.         for(int i = 0; i < 20; ++i){
  47.             scanf("%d%c", &chaika_loh[i], &c);
  48.             ++maks_krasava;
  49.  
  50.             if(c == '\n') break;
  51.         }
  52.  
  53.         printf("%d", count_if(chaika_loh, 4, maks_krasava, Integer));
  54.     }
  55.     else {
  56.         double arr[20];
  57.         int count = 0;
  58.         char c;
  59.  
  60.         for(int i = 0; i < 20; ++i){
  61.             scanf("%lf%c", &arr[i], &c);
  62.             ++count;
  63.  
  64.             if(c == '\n') break;
  65.         }
  66.  
  67.         printf("%d", count_if(arr, 8, count, Float));
  68.     }
  69.  
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement