1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 109
|
||||||
1 | ||||||
Одномерный массив более 3-х подряд идущих отрицательных элементов, заменить на максимальный элемент10.02.2014, 14:36. Показов 1275. Ответов 4
Метки нет (Все метки)
В одномерном массиве A=(a1, а2, ..., аn) все группы элементов, содержащие более 3-х подряд идущих отрицательных элементов, заменить на максимальный элемент.
Помогите разобраться ... Если в массиве попадается больше трех подряд отрицательных их надо убрать и вместо них записать один максимальный элемент..
0
|
10.02.2014, 14:36 | |
Ответы с готовыми решениями:
4
Одномерный массив более 3-х подряд идущих отрицательных элементов, заменить на максимальный элемент Разреженный одномерный массив: заменить группу из подряд идущих нулей Двумерные массивы. Найти новый одномерный массив, максимальный элемент, заменить третий элемент Максимальный элемент каждого столбца заменить произведением отрицательных элементов его же |
7 / 7 / 3
Регистрация: 11.02.2012
Сообщений: 21
|
|||||||||||
10.02.2014, 15:11 | 2 | ||||||||||
Не совсем понял, что вы пытаетесь сделать тут, но если вы ищете максимальный элемент массива, то это будет выглядеть как-то так:
0
|
1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 109
|
|
10.02.2014, 15:32 [ТС] | 3 |
Ikol, Спасибо ... но вот эта строчка for (int j=i-1;a<x;i++) не понятна...
Добавлено через 6 минут Ikol, Этот код не работает
0
|
7 / 7 / 3
Регистрация: 11.02.2012
Сообщений: 21
|
|||||||||||
10.02.2014, 16:04 | 4 | ||||||||||
Ну всё просто. В месте массива, где был найден третий подряд идущий элемент мы начинаем менять массив.(Только косяк у себя нашёл, там где a[j]=max; нужно написать a[i-2]=max. Так вот, здесь мы перед циклом обхода массива присваиваем максимальное значение элементу, который был на 2 элемента раньше(чем последний, третий подряд идущий отрицательный элемент). Затем мы начинаем цикл с элемента, который был перед текущим, элементом (то есть 2й подряд идущий отрицательный элемент), и уже начиная с него, начинаем присваивать текущему элементу массива(от второго подряд идущего отрицательного элемента и далее), элемент, индекс которого на 2 больше(от следующего элемента, после последнего подряд идущего отрицательного и далее).
И я вот тут немного додумал цикл. Насколько я понимаю, подряд идущих отрицательных чисел может быть не ровно 3, поэтому нужна ещё проверка именно на длину этой отрицательной серии элементов, с заменой всей серии на 1 элемент. В общем вот.
Полностью рабочий код, проверял через онлайн компилятор
1
|
1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 109
|
|
10.02.2014, 16:30 [ТС] | 5 |
Ikol, Есть небольшой нюанс... массив должен уменьшиться... допустим
int x =12; int a[12]={40,-12,-3,-5,-1,17,-8,-1,-65,-1,-6,4} Должно выводиться a[]={40,40,17,40,4}^) Добавлено через 13 минут Ikol, Спасибо большое все работает...
0
|
10.02.2014, 16:30 | |
10.02.2014, 16:30 | |
Помогаю со студенческими работами здесь
5
Одномерный массив (максимальный из отрицательных элементов и поменять его местами с последним) Количество подряд идущих отрицательных элементов Подсчет подряд идущих отрицательных элементов Одномерный массив. Определить наибольшее количество подряд идущих нулей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |