Тема: Одновимірний масив з введенням кількості елементів

Задача на С++. Середовище: Dev-C++. Створити масив з N кількістю елементів, та знайти мінімальний елемент та записати останнім, змістивши елементи масиву вліво. Визначити кількість елементів, менших за задане користувачем значення.

2

Re: Одновимірний масив з введенням кількості елементів

/*22.05.2022 18:47:25
Задача на С++. Середовище: Dev-C++.
Створити масив з N кількістю елементів,
та знайти мінімальний елемент та записати останнім,
змістивши елементи масиву вліво.
Визначити кількість елементів, менших за задане
користувачем значення.*/
#include <iostream>
#include <iomanip>
#include <ctime>

const size_t N = 100;

void FillArray(int * );
void PrintArray(int * );
int FindMin(int * );
void ArrayElementShift(int * );
size_t FindNumOfSmalVals(int * , int);
//int * arr[N];
//using namespace std;
int minvalue;
size_t minpos = 0;

int main()
{
  int arr[N];
  srand(time(0));
  FillArray(arr);
  PrintArray(arr);
  std::cout << std::endl;
    int value;
    value = FindMin(arr);
  std::cout << " min Value = " << value << " min position = " << minpos << std::endl;
  ArrayElementShift(arr);
  PrintArray(arr);
  std::cout << std::endl;
  std::cout << "enter a value";
  
  std::cin >> value;
  std::cout << std::endl;
  std::cout << "number of elements less than given = " << FindNumOfSmalVals(arr, value) << std::endl;
    std::getchar;
  return 0;
}

size_t FindNumOfSmalVals(int * a, int v)
{
  size_t num = 0;
  for (size_t i = 0; i < N; i++)
  {
    if (v > a[i])
      num++;
  }
  return num;
}

void ArrayElementShift(int * a)
{
 for (size_t i = minpos; i < N-1; i++)
  {
    a[i] = a[i+1];
  }
  a[N-1] = minvalue;
}

int FindMin(int * a)
{
  minvalue = a[0];
  //minpos = 0;
  for (size_t i = 0; i < N; i++)
  {
    if (minvalue > a[i])
    {
      minvalue = a[i];
      minpos = i;
    }
  }
  return minvalue;
}

void PrintArray(int * a)
{
    for (size_t i = 0; i < N; i++)
  {
    std::cout << "a[" << std::setw(3) << i << "]= " << std::setw(6) << a[i] << '\t';
    if ((i+1) % 6 == 0) std::cout << std::endl;
  }

}

void FillArray(int * a)
{
    for (size_t i = 0; i < N; i++)
    {
        a[i] = rand();
    }
}