Предмет: Информатика, автор: vladkirna

Відаю всі бали мова с++

Завдання 1. Написати функцію, яка отримує покажчик на масив і його розмiр, і повертає суму і добуток його i елементів у двох параметрах-покажчиках.

Завдання 2.Написати функцію, яка отримує покажчик на масив і його розмір, і повертає кількість від’ємних, додатних і нульових елементів масиву.

Завдання 3. Написати функцію, яка приймає як аргу- мент покажчики на два масиви (А і В) і розміри масивів. Функція перевіряє, чи є масив В підмножиною масиву А і повертає покажчик на початок знайденого фрагмента або повертає 0 в іншому випадку.

Завдання 4. Написати функцію, яка отримує покажчик на динамічний масив і його розмір. Функція має вида- лити з масиву всі від'ємні числа та повернути покажчик на новий динамічний масив.


Завдання 5. Створити функцію, яка дає змогу додавати блок елементів у кінець масиву. ​

Ответы

Автор ответа: mishabasaliga
0

Відповідь:

Пояснення:

1. void sumAndProduct(int* arr, int size, int* sumPtr, int* productPtr) {

   int sum = 0;

   int product = 1;

   for (int i = 0; i < size; i++) {

       sum += arr[i];

       product *= arr[i];

   }

   *sumPtr = sum;

   *productPtr = product;

}

2. void countPositiveNegativeZero(int* arr, int size, int* positivePtr, int* negativePtr, int* zeroPtr) {

   int positive = 0;

   int negative = 0;

   int zero = 0;

   for (int i = 0; i < size; i++) {

       if (arr[i] > 0) {

           positive++;

       } else if (arr[i] < 0) {

           negative++;

       } else {

           zero++;

       }

   }

   *positivePtr = positive;

   *negativePtr = negative;

   *zeroPtr = zero;

}

3. int* findSubarray(int* A, int sizeA, int* B, int sizeB) {

   for (int i = 0; i <= sizeA - sizeB; i++) {

       bool found = true;

       for (int j = 0; j < sizeB; j++) {

           if (A[i+j] != B[j]) {

               found = false;

               break;

           }

       }

       if (found) {

           return &A[i];

       }

   }

   return nullptr;

}

4. int* removeNegative(int* arr, int size) {

   int countPositive = 0;

   for (int i = 0; i < size; i++) {

       if (arr[i] > 0) {

           countPositive++;

       }

   }

   int* positiveArr = new int[countPositive];

   int j = 0;

   for (int i = 0; i < size; i++) {

       if (arr[i] > 0) {

           positiveArr[j] = arr[i];

           j++;

       }

   }

   return positiveArr;

}

5. void addBlock(int** arrPtr, int* sizePtr, int* block, int blockSize) {

   int newSize = *sizePtr + blockSize;

   int* newArr = new int[newSize];

   for (int i = 0; i < *sizePtr; i++) {

       newArr[i] = (*arrPtr)[i];

   }

   for (int i = 0; i < blockSize; i++) {

       newArr[*sizePtr + i] = block[i];

   }

   delete[] *arrPtr;

   *arrPtr = newArr;

   *sizePtr = newSize;

}

Похожие вопросы
Предмет: Физика, автор: ZERTYmoo
Предмет: История, автор: lazarevadasha2p41p24