How to check if array contains all elements of a given range in C++

1 Answer

0 votes
#include <iostream>

bool check_elements(int arr[], int size, int rang_from, int rang_to) {
    int range = rang_to - rang_from;
    for (int i = 0; i < size; i++) {
        if (arr[i] >= rang_from && arr[i] <= rang_to) {
            int j = arr[i] - rang_from;
            if (arr[j] > 0) {
                arr[j] *= -1;
            }
            for (int i = 0; i < size; i++) {
                std::cout << arr[i] << " ";
            }
            std::cout << "\n";
        }
    }

    for (int i = 0; i < range; i++) {
        if (arr[i] > 0)
            return false;
    }
    return true;
}
  
int main()
{
    int arr[] = {1, 4, 5, 2, 3, 7, 8, 3, 9, 4, 4, 0, 6};
    int size = sizeof(arr) / sizeof(arr[0]);
    int rang_from = 3, rang_to = 7; 
  
    if (check_elements(arr, size, rang_from, rang_to))
        std::cout << "Yes\n";
    else
        std::cout << "No\n";

    return 0;
}



 
/*
run:
       
1 -4 5 2 3 7 8 3 9 4 4 0 6 
1 -4 -5 2 3 7 8 3 9 4 4 0 6 
-1 -4 -5 2 3 7 8 3 9 4 4 0 6 
-1 -4 -5 2 -3 7 8 3 9 4 4 0 6 
-1 -4 -5 2 -3 7 8 3 9 4 4 0 6 
-1 -4 -5 2 -3 7 8 3 9 4 4 0 6 
-1 -4 -5 2 -3 7 8 3 9 4 4 0 6 
-1 -4 -5 -2 -3 7 8 3 9 4 4 0 6 
Yes
       
*/

 



answered Dec 3, 2021 by avibootz

Related questions

...