Составить программу на С++ Не сталкивался с этимхлп
Создать целочисленный массив типа short int размером n. Элементы массива инициализируются по следующему алгоритму:
1) сгенерировать случайное целое число А в диапазоне значений от 10 до 20;
2) используя битовые операции, поменять 2-й бит значением 13-го бита, а у остальных сохранить значения.
3) присвоить преобразованное число А текшему элементу массива.
Инициализированный массив вывести на печать и, используя битовые операции, найти в нём количество чётных элементов.
Создать целочисленный массив типа short int размером n. Элементы массива инициализируются по следующему алгоритму:
1) сгенерировать случайное целое число А в диапазоне значений от 10 до 20;
2) используя битовые операции, поменять 2-й бит значением 13-го бита, а у остальных сохранить значения.
3) присвоить преобразованное число А текшему элементу массива.
Инициализированный массив вывести на печать и, используя битовые операции, найти в нём количество чётных элементов.
Для начала нам нужно создать целочисленный массив типа short int размером n. Для этого объявим переменную n и заполним ее значением. Например, пусть n = 10.
```c++
#include
#include
int main() {
const int n = 10;
short int arr[n]; // объявляем массив размером n
// ваш код будет здесь
return 0;
}
```
Далее нам необходимо выполнить следующий алгоритм для инициализации элементов массива:
1) Сгенерировать случайное целое число А в диапазоне значений от 10 до 20. Для этого воспользуемся функцией `rand()`, которая генерирует псевдослучайное число. Чтобы получить число в указанном диапазоне, разделим результат на 11 (20 - 10 + 1) и прибавим 10:
```c++
int A = rand() % 11 + 10;
```
2) Используя битовые операции, поменять 2-й бит значением 13-го бита, а у остальных сохранить значения. Для этого нам понадобятся операторы битовых сдвигов `>>` и `<<`. Для простоты обозначим второй бит как B2 и 13-й бит как B13:
```c++
int B2 = (A >> 1) & 1; // сохраняем значение 2-го бита
int B13 = (A >> 12) & 1; // сохраняем значение 13-го бита
A = (A & ~(1 << 1)) | (B13 << 1); // меняем 2-й бит значением 13-го бита
```
3) Присвоить преобразованное число А текущему элементу массива:
```c++
arr[i] = A;
```
Теперь, чтобы вывести инициализированный массив на печать и найти количество четных элементов, давайте выполним следующие действия:
```c++
int countEven = 0; // переменная для подсчета четных элементов
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " "; // выводим элемент массива на печать
if (arr[i] % 2 == 0) { // проверяем, является ли элемент четным
countEven++; // увеличиваем счетчик четных элементов
}
}
std::cout << std::endl;
std::cout << "Количество четных элементов: " << countEven << std::endl;
```
В итоге, полная программа будет выглядеть следующим образом:
```c++
#include
#include
int main() {
const int n = 10;
short int arr[n]; // объявляем массив размером n
for (int i = 0; i < n; i++) {
int A = rand() % 11 + 10; // генерируем случайное число в диапазоне от 10 до 20
int B2 = (A >> 1) & 1; // сохраняем значение 2-го бита
int B13 = (A >> 12) & 1; // сохраняем значение 13-го бита
A = (A & ~(1 << 1)) | (B13 << 1); // меняем 2-й бит значением 13-го бита
arr[i] = A; // присваиваем преобразованное число А текущему элементу массива
}
int countEven = 0; // переменная для подсчета четных элементов
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " "; // выводим элемент массива на печать
if (arr[i] % 2 == 0) { // проверяем, является ли элемент четным
countEven++; // увеличиваем счетчик четных элементов
}
}
std::cout << std::endl;
std::cout << "Количество четных элементов: " << countEven << std::endl;
return 0;
}
```
Теперь код готов к выполнению. Программа создаст массив, заполнит его элементы в соответствии с указанным алгоритмом, выведет массив на печать и подсчитает количество четных элементов.
Надеюсь, мой ответ был подробным и понятным для вас. Если у вас возникнут еще вопросы, пожалуйста, не стесняйтесь задавать их.