![]() |
Массивы
У меня проблема вот с этой задачей. Ну совсем ничего не получается:
Задан вещественный массив размера N. Отсортировать все отрицательные элементы в порядке возрастания. Остальные элементы оставить без изменений. Пример: -4 5 -7 9 0 -1 3 -5 2 -6 → -7 5 -6 9 0 -5 3 -4 2 -1 |
zena, а рассуждения где? :)
Что мешает использовать дополнительные массивы? Вы же не можете на перед угадать, какая будет последовательность и как расставить отрицательные числа, чтобы они шли в порядке возрастания, значит и компьютер не может. Значит надо что-то сделать, чтобы ему помочь. |
Ну у меня получилось кое что, но выдаёт бред какойто:
Код:
#pragma argsused |
Цитата:
Цитата:
Цитата:
Цитата:
Неверно. Раз есть переменные i,j то и надо работать с переменными i, j, а не с j, j+1. От этого только путаница. И вот это действие тоже не понятно: temp=array[index[j]]=array[index[j+1]]; array[index[j+1]]=temp; Масло масляное. Зачем повторное переприсвоение? |
Существует очень простое и наглядное решение этой задачи. если нет необходимости писать быстрый алгоритм:
1) используете цикл do{; 2) внутри него цикл for; 3) если число отрицательное ищите следующее отрицательное и если не выполняется условие возрастания меняете их местами, используя дополнительную переменную; 4) выполняете цикл do до тех пор, пока была хотя бы одна перестановка. |
Eksworden, собственно это тот же "пузырек" только для отрицательных чисел.
А кстати говоря... |
Время: 00:24. |
Время: 00:24.
© OSzone.net 2001-