Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
shulia-katty
0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 9
1

Отсортировать диагональные элементы массива по убыванию (методом выбора)

07.06.2013, 10:36. Просмотров 1017. Ответов 2
Метки нет (Все метки)

В задании просят: Отсортировать диагональные элементы массива по убыванию (методом выбора).
Пытаюсь реализовать с помощью приведённого кода. Элементы побочной диагонали сортирует гуд. Остальные переворачивает по зеркальному принципу. Не могу сообразить, как переделать цикл, чтобы правильно сортировать все диагональные элементы. Хелп! Наставьте на путь истинный!
C
1
2
3
4
5
6
7
8
9
10
int tmp, n, m;
for(i=0;i<N;i++)
  {for(j=0;j<M;j++)
     {for(n=i+1; n<N; n++)
        {for(m=j+1; m<M; m++)
        if(array[i][j]<array[n][m])
        {  tmp=array[i][j];
           array[i][j]=array[n][m];
           array[n][m]=tmp;
        }}}}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2013, 10:36
Ответы с готовыми решениями:

Упорядочить методом выбора элементы массива по убыванию модулей
Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне (-20,...

Отсортировать последовательность по убыванию модифицированным методом простого выбора
Расположить положительные элементы последовательности по убыванию модифицированным методом простого...

Отсортировать массив, заданный с клавиатуры, простым методом выбора по убыванию
Нужно отсортировать массив, заданный с клавиатуры простым методом выбора по убыванию. На...

Упорядочить элементы чётных строк матрицы по убыванию, методом выбора
Задание: В матрице размером 12х8 упорядочить элементы чётных строк по убыванию, методом выбора. ...

Отсортировать массив методом выбора, методом вставки и методом Хоара
Задан двумерный массив.Получить одномерный массив, состоящий из минимальных элементов строк...

2
MrGluck
Форумчанин
Эксперт CЭксперт С++
8136 / 4987 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
12.06.2013, 20:10 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void selection(int *a, int len) {
 
    /* внешний цикл. i – позиция первого неотсортированного элемента на данной итерации */
    for (int i = 0; i < len - 1; i++) {
        int min = i; /* min – позиция минимального элемента */
 
        /* внутренний цикл. если найден элемент строго меньший текущего минимального, записываем его индекс как минимальный */
        for(int j = i + 1; j < len; j++) {
            if(a[j] < a[min])
                min = j;
        }
        if(min != i) /* минимальный элемент не является первым неотсортированным, обмен нужен */
            exch(a[i], a[min]);
    }
}
Как вариант:
Просто формируете массив из диагональных элементов, сортируете его данной функцией, присваивайте диагональным элементам соответствующие значения
0
shulia-katty
0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 9
12.06.2013, 20:28  [ТС] 3
Спасибо! Очень признательна за отзывчивость!
Сейчас попробую обмозговать!
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2013, 20:28

Использовать сортировку методом выбора, расположить элементы массива по возростанию
С помощью функции random(N) . Использовать сортировку методом выбора, расположить элементы массива...

Используя сортировку методом сравнения, расположить элементы массива по убыванию
Пожалуйста помогите сессия..... Дан массив вещественных чисел(N=1000).Используя сортировку методом...

Используя сортировку методом сравнения, расположить элементы массива по убыванию
Подскажите, пожалуйста. Дан массив вещественных чисел (A=30). Используя сортировку методом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.