Задача на С++: Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из положительных элементов массива А и найти в нем наибольший элемент. размер произвольный
Ответы
Ответ:
Пример программы на C++, которая решает вашу задачу:
```cpp
#include <iostream>
#include <climits> // Для использования константы INT_MIN
int main() {
// Ввод размера массива
int n;
std::cout << "Введите размер массива: ";
std::cin >> n;
// Проверка на корректный ввод размера
if (n <= 0) {
std::cerr << "Размер массива должен быть положительным числом.\n";
return 1; // Возвращаем код ошибки
}
// Ввод элементов массива А
int* A = new int[n];
std::cout << "Введите элементы массива A:\n";
for (int i = 0; i < n; ++i) {
std::cout << "A[" << i << "]: ";
std::cin >> A[i];
}
// Создание массива B и поиск наибольшего элемента
int* B = new int[n]; // Массив B не может быть больше массива A, поэтому его размер равен n
int countB = 0; // Количество положительных элементов в B
int maxElementB = INT_MIN; // Инициализация максимального элемента B
// Заполнение массива B положительными элементами из A
for (int i = 0; i < n; ++i) {
if (A[i] > 0) {
B[countB] = A[i];
++countB;
// Проверка и обновление максимального элемента B
if (A[i] > maxElementB) {
maxElementB = A[i];
}
}
}
// Вывод массива B
std::cout << "Массив B, состоящий из положительных элементов массива A:\n";
for (int i = 0; i < countB; ++i) {
std::cout << "B[" << i << "]: " << B[i] << "\n";
}
// Вывод наибольшего элемента B
if (countB > 0) {
std::cout << "Наибольший элемент в массиве B: " << maxElementB << "\n";
} else {
std::cout << "Массив B не содержит положительных элементов.\n";
}
// Освобождение памяти
delete[] A;
delete[] B;
return 0;
}
```
Эта программа запрашивает у пользователя размер массива, затем вводит элементы массива A. Затем создается массив B, в который копируются только положительные элементы из массива A. Наконец, программа находит и выводит наибольший элемент в массиве B.
Объяснение: