Задать вопрос
@MrFlatman
Студент

Что происходит внутри цикла FOR?

Всем привет. Код не мой, пытаюсь понять что происходит в цикле.
Программа предназначена для выполнения условия
Даны натуральное число n и целые числа (m1...mn) . После каждого четного члена последовательности с нечетным номером, предшествующим первому по порядку члену со значением max(m1...mn) , вставить значение max(m1...mn).


Непосредственно сам код:

#include <iostream>
#include <cstdlib>
using namespace std;
#define n 30
 
int main(){
    int mas[n];
    int max = -9999;
    int pos = 0;
    cout<<"In: ";
    for(int i = 0; i < n; i++){
        mas[i] = rand()%105 - 5;
        cout<<mas[i]<<" ";
        if(max < mas[i]){
            max = mas[i];
            pos = i;
        }
    }
    cout<<endl<<"Max = "<<max<<endl<<"Out ";
    for(int i = 0; i < n; i++){
        cout<<mas[i]<<" ";
                if(i < pos){
        if((i % 2 != 0) && (mas[i] % 2 == 0))
            cout<<max<<" ";
                }
    }
return 0;
}


Трудности возникаю при попытке понять что происходит в цикле, данная строка
for(int i = 0; i < n; i++)
понятна, а вот что происходит дальше за ней как туман. Так же не ясно почему int max = -9999, ведь в условии об этом не слова. Сильно тапками не кидайтесь, пожалуйста, учу С++ только 2-3 неделю. Еще не совсем понимаю все. Заранее благодарен.
  • Вопрос задан
  • 205 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя hydra_13 К ответам на вопрос (2)
hydra_13
@hydra_13
Пограммист - любитель)
1) int max = -9999 - изначальная инициализация переменной (с надеждой что это самое максимально минимальное значение)
2) mas[i] = rand()%105 - 5;- присвоение рандомного значения ячейке с индексомi в массиве mas
3) cout<<mas[i]<<" ";- вывод значения ячейки i из массива mas в консоль
4)
if(max < mas[i]){
            max = mas[i];
            pos = i;
        }

- проверка если текущий элемент массива mas больше значения переменной max, то записываем значения ячейки i массива mas в переменную max и сохранение индекса ячейки i в переменной pos.

5) cout<<mas[i]<<" "; - вывод значения i ячейки массива mas.
6) if(i < pos){} - если i меньше индекса позиции максимального элемента
7)
if((i % 2 != 0) && (mas[i] % 2 == 0))
            cout<<max<<" ";
                }
- если текущий индекс i нечетный (i % 2 != 0) И (&&) элемент массива mas с индексом i имеет четное значение (mas[i] % 2 == 0) , то вывести в консоль максимальное значение ( cout<<max<<" ";)
Ответ написан