Вопрос по информатике
Анонимный
1 год назад

Помогите пожалуйста никак не могу решать.Надо решать в языке С с void ом и arrey ем.

Вводится целое число N. Заполните N-значный массив целыми случайными числами и поместите их в другой массив, если они совпадают с положительной степенью 2, распечатайте на экране. [-4128,1321]
вход: N=5, массив={-1024,124, -16,512,996};
выход: {1024,16,512}

Ответы 1

Вот пример кода на языке C, который решает вашу задачу:

```c

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <math.h>

void check_powers_of_two(int *arr, int size) {

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

       int num = arr[i];

       if (num > 0 && ((num & (num - 1)) == 0)) {

           printf("%d ", num);

       }

   }

}

int main() {

   int n;

   printf("Enter the size of the array: ");

   scanf("%d", &n);

   int *arr = (int*) malloc(n * sizeof(int));

   srand(time(NULL));

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

       arr[i] = rand() % 10000 - 5000;

   }

   printf("Original array: ");

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

       printf("%d ", arr[i]);

   }

   printf("\n");

   printf("Powers of 2 in the array: ");

   check_powers_of_two(arr, n);

   free(arr);

   return 0;

}

```

Объяснение кода:

- Сначала мы объявляем функцию `check_powers_of_two`, которая принимает массив и его размер, проходится по элементам массива, и если элемент является положительной степенью двойки, то он распечатывается на экране.

- Затем мы объявляем функцию `main`. Сначала она запрашивает у пользователя размер массива `n`. Затем мы выделяем память для массива `arr` с помощью функции `malloc`. Затем мы заполняем массив случайными числами с помощью функции `rand`.

- Мы выводим на экран исходный массив, затем вызываем функцию `check_powers_of_two`, чтобы распечатать положительные степени двойки в массиве.

- Наконец, мы освобождаем выделенную память с помощью функции `free`.

Обратите внимание, что я использовал функцию `rand()` для генерации случайных чисел. Чтобы генерация была по-настоящему случайной, необходимо установить начальное значение генератора случайных чисел с помощью функции `srand()` и передать ей текущее время в качестве аргумента.

Премиум статус
Получайте самые быстрые
ответы на свои вопросы
У вас остались
вопросы?