Вопрос задан 19.06.2023 в 08:57. Предмет Информатика. Спрашивает Трапезникова Арина.

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

найти последний максимальный элемент и поменять местами c первым положительным элементом.
0 0
Перейти к ответам

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

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

Ответ:

#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;  

}

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

Для решения этой задачи на С++ мы можем использовать цикл 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.

0 0

Похожие вопросы

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

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

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