Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2014, 17:39   #1
Serzh12
Новичок
Джуниор
 
Регистрация: 23.05.2014
Сообщений: 3
По умолчанию (C) Отсортировать массив прямоугольной матрицы по строкам методом пузырька

Помогите переделать программу для моего варианта. Задание нужно отсортировать массив прямоугольной матрицы по строкам. Сортировка: в начале все отрицательные элементы первым самый большой по модулю, в конце второй по модулю и тд, потом все нули, далее все положительные элементы первым самый маленький по модулю, в конце второй по малости и тд. То есть если была строка 9 -1 4 -2 -5 0 8 5 -7, отсортирует
-7 -2 -1 -5 0 4 8 9 5

Вот вариант одногруппника у него по столбцам с начало все положительные по возрастанию, нули, потом все отрицательные по возрастанию
Код:
#include <stdio.h>
 
int main(void)
{
int i,j,k,c,d;
int a[10][6] = { 2,-4, 0,-5, 1, 7,
                -9, 0,-7, 8, 6,-3,
                -1, 7,-3, 3,-6, 0,
                 9,-2, 5,-8, 4,-2,
                -5, 0, 1,-2,-9, 0,
                 8, 4,-6, 7,-1,-3,
                -1, 0, 0, 9,-2, 4,
                 6,-8, 4, 0,-2, 2,
                 4, 2,-7,-8, 0,-6,
                 0, 3,-4,-3, 7,-8};
 
printf("Default array\n");
for (i=0;i<10;i++){
    for(j=0;j<6;j++)
    printf("%3d",a[i][j]);
    printf("\n");}
 
 
for (d=0;d<6;d++){
    for (i=0;i<9;i++){
        for (j=i;j<10;j++){
            if (a[j][d]<a[i][d]){
               c=a[j][d]; k=j;
               a[k][d]=a[i][d]; a[i][d]=c;}}}}
for (d=0;d<6;d++){
for (i=0;i<5;i++){
    c=a[i][d]; a[i][d]=a[9-i][d]; a[9-i][d]=c;}}
 
 
for (d=0;d<6;d++){
    for (i=0;i<9;i++){
        for (j=i;j<10;j++)
            if (a[j][d]<a[i][d] && (a[j][d]*a[i][d])>0){
               c=a[j][d]; k=j; a[k][d]=a[i][d]; a[i][d]=c;}}}
 
 
printf("Sorted array\n");
for (i=0;i<10;i++){
    for(j=0;j<6;j++)
        printf("%3d",a[i][j]);
    printf("\n");}
getchar();
return 1;
}

Последний раз редактировалось Stilet; 23.05.2014 в 19:19.
Serzh12 вне форума Ответить с цитированием
Старый 24.05.2014, 20:21   #2
Serzh12
Новичок
Джуниор
 
Регистрация: 23.05.2014
Сообщений: 3
По умолчанию

Help! I need somebody
Serzh12 вне форума Ответить с цитированием
Старый 25.05.2014, 21:54   #3
Serzh12
Новичок
Джуниор
 
Регистрация: 23.05.2014
Сообщений: 3
По умолчанию

Help! Not just anybody
Serzh12 вне форума Ответить с цитированием
Старый 25.05.2014, 22:08   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Может конечно я ошибаюсь, но
Код:
int a[10][6] = { 2,-4, 0,-5, 1, 7,
                -9, 0,-7, 8, 6,-3,
                -1, 7,-3, 3,-6, 0,
                 9,-2, 5,-8, 4,-2,
                -5, 0, 1,-2,-9, 0,
                 8, 4,-6, 7,-1,-3,
                -1, 0, 0, 9,-2, 4,
                 6,-8, 4, 0,-2, 2,
                 4, 2,-7,-8, 0,-6,
                 0, 3,-4,-3, 7,-8};
Объявляете вы его как двумерный массив, а инициализируете как одномерный... И что у вас все работает? Это первое что приковало взгляд
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сформировать двумерный массив и заполнить его случайными числами и отсортировать столбцы в нём методом "пузырька" ( на Pascal ) duxa27 Помощь студентам 2 26.12.2012 12:25
Cортировка матрицы методом пузырька(Си). ЛетчикАсс Общие вопросы C/C++ 4 28.10.2012 10:29
программа которая сможет отсортировать строки матрицы по строкам luka_zluka1 Microsoft Office Word 0 13.05.2012 22:56
Задать двумерный массив, вывести на экран отдельно главную и побочную диагонали, отсортировать по убыванию методом пузырька CookieStar Помощь студентам 6 12.12.2011 07:44
Отсортировать массив по четным элементам ,методом пузырька! Babur4iK Помощь студентам 13 27.05.2010 08:52