Люди добрые помогите решить задачку на языке СИ, буду очень благодарен
В массиве все элементы, стоящие после максимального, уменьшить на 1.
Пример: из массива A[5]: 3 2 1 5 4 должен получиться массив 3 2 1 5 3.
В массиве все элементы, стоящие после максимального, уменьшить на 1.
Пример: из массива A[5]: 3 2 1 5 4 должен получиться массив 3 2 1 5 3.
max = A[0]; imax = 0;
for (int i = 0; i < 5; i++) if (A[ i ] > max) {max = A[ i ]; imax = i; }
for (i = imax + 1; i < 5; i++) A[ i ] -=1;
Идея такая
1) Поиск максимума
а) Задаем массив
б) Присваиваем какой-либо переменной, например, peremennaya max, минимальное значение... наверное, это ноль.
в) Далее с помощью цикла сравниваем каждый элемент массива с этой переменной max, и если оказывается, что какой-либо элемент больше чем эта переменная, то этот элемент будет значением макс и так до сих пор, пока цикл не пройдет все элементы массива
2) Уменьшить значения после максимума на единичку
2а) Нахождение номера максимального элемента
2аа) Есть переменная, которая задает номер массива. Ищем тот номер, при которым a = max
for (i=0; i
иначе выполняем цикл заново
2б) Уменьшаем значения на единичку
2бб) for (i=номер максимального элемента массива, i
Я бы сделала как-то так.