Вопрос задан 06.06.2023 в 11:55. Предмет Информатика. Спрашивает Кравченко Екатерина.

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

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

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Митюгина Дариненок.

Вот пример кода на языке 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()` и передать ей текущее время в качестве аргумента.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я могу помочь вам с этим заданием на языке C. Вот пример решения:

c
#include <stdio.h> #include <stdlib.h> #include <math.h> void findPowerOfTwo(int *array, int size) { int i; for (i = 0; i < size; i++) { if (array[i] > 0 && (array[i] & (array[i] - 1)) == 0) { printf("%d ", array[i]); } } } int main() { int N; printf("Введите размер массива: "); scanf("%d", &N); int *array = (int *)malloc(N * sizeof(int)); int i; printf("Введите элементы массива:\n"); for (i = 0; i < N; i++) { scanf("%d", &array[i]); } printf("Числа, являющиеся положительными степенями двойки: "); findPowerOfTwo(array, N); free(array); return 0; }

Программа запрашивает у пользователя размер массива и элементы массива, а затем проверяет каждый элемент массива на то, является ли он положительной степенью двойки. Если элемент соответствует этому условию, он выводится на экран.

Надеюсь, это поможет! Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос