
Помогите, пожалуйста! На С++, использовать цикл for. В массиве A элементов из диапазона [-15;20]
найти последний максимальный элемент и поменять местами c первым положительным элементом.

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

Ответ:
#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
int main()
{
setlocale(LC_ALL, "rus");
int N, max, first, imax, ifirst;
cout << "Размер массива " << endl;
cin >> N;
int Arr[N];
cout << "Вводим числа массива " << endl;
for (int i=0; i < N; i++)
{
cin >> Arr[i];
// здесь если надо проверку сделай
}
for(int i=0; i<N; i++)
{
if(Arr[i]> 0 )
{
first=Arr[i];
ifirst=i;
break;
}
}
max = Arr[0];
for (int i=0; i<N; i++)
{
if (Arr[i] > max)
{
max = Arr[i];
imax=i;
}
}
cout << "1й положительный " << first << endl;
cout << "Максимум " << max << endl;
int tmp = Arr[imax];
Arr[imax] = Arr[ifirst];
Arr[ifirst] = tmp;
for (int i = 0; i < N; i++)
{
cout << Arr[i] << endl;
}
return 0;
}



Для решения этой задачи на С++ мы можем использовать цикл for для обхода массива a и нахождения последнего максимального элемента.
Сначала создадим массив a с элементами из диапазона [-15;20]:
```cpp int a[] = {-2, 6, 0, -10, 15, 9, 20, -15, 5, -8}; ```
Затем определим переменные для хранения индексов последнего максимального элемента и первого положительного элемента:
```cpp int lastMaxIndex = 0; int firstPositiveIndex = -1; ```
Здесь мы инициализируем firstPositiveIndex значением -1, чтобы в дальнейшем проверить, был ли найден положительный элемент или нет.
Теперь используем цикл for для обхода массива a и нахождения индекса последнего максимального элемента:
```cpp for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) { if (a[i] >= a[lastMaxIndex]) { lastMaxIndex = i; } } ```
В этом цикле мы проверяем каждый элемент массива a и обновляем значение lastMaxIndex, если текущий элемент больше или равен текущему максимальному элементу.
После этого мы можем использовать еще один цикл for для поиска первого положительного элемента:
```cpp for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) { if (a[i] > 0) { firstPositiveIndex = i; break; } } ```
В этом цикле мы проверяем каждый элемент массива a и, если находим положительный элемент, сохраняем его индекс в переменную firstPositiveIndex и выходим из цикла с помощью оператора break.
Наконец, если был найден положительный элемент, мы можем поменять местами последний максимальный элемент и первый положительный элемент:
```cpp if (firstPositiveIndex != -1) { int temp = a[lastMaxIndex]; a[lastMaxIndex] = a[firstPositiveIndex]; a[firstPositiveIndex] = temp; } ```
Здесь мы используем временную переменную temp для обмена значениями.
Полный код для этой задачи на С++ будет выглядеть следующим образом:
```cpp
#include
int main() { int a[] = {-2, 6, 0, -10, 15, 9, 20, -15, 5, -8}; int lastMaxIndex = 0; int firstPositiveIndex = -1;
for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) { if (a[i] >= a[lastMaxIndex]) { lastMaxIndex = i; } }
for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) { if (a[i] > 0) { firstPositiveIndex = i; break; } }
if (firstPositiveIndex != -1) { int temp = a[lastMaxIndex]; a[lastMaxIndex] = a[firstPositiveIndex]; a[firstPositiveIndex] = temp; }
for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) { std::cout << a[i] << " "; } std::cout << std::endl; return 0; } ```
После выполнения программы на экран будет выведен измененный массив a.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili