Advertisement
Guest User

zad1

a guest
Dec 16th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. /*Filter е функция от по-висок ред, която приема масив, размера му и функция, която връща булева оценка на това, дали даден елемент отговаря на определени критерии; запазва в масива само тези елементи, които имат положителна оценка.
  2. Напишете функция filter, която:
  3. 2.1. Проверява дали елемента е четно число
  4. */
  5.  
  6. #include <iostream>
  7.  
  8. using namespace std;
  9.  
  10. const int MAX_SIZE=25;
  11.  
  12. bool isEven(int n)
  13. {
  14.     return !(n%2);
  15. }
  16.  
  17. void Filter(int arr[], int n, bool (*isEven)(int))
  18. {
  19.     int cnt=n;
  20.     for(int i=0; i<cnt; i++)
  21.     {
  22.         if((isEven(arr[i]))==false)
  23.         {
  24.             cout<<"We are going to remove "<<arr[i]<<" from position "<<i<<endl;
  25.             for(int j=i; j<cnt; j++)
  26.             {
  27.                 arr[j]=arr[j+1];
  28.             }
  29.             i--;
  30.             --cnt;
  31.         }
  32.     }
  33.  
  34.     for(int i=0; i<cnt; i++)
  35.     {
  36.         cout<<arr[i]<<" ";
  37.     }
  38. }
  39.  
  40. int main()
  41. {
  42.     int arr[10];
  43.     int n;
  44.     cin>>n;
  45.     for(int i=0; i<n; i++)
  46.     {
  47.         cin>>arr[i];
  48.     }
  49.    Filter(arr,n,isEven);
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement