Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/27: Рейтинг темы: голосов - 27, средняя оценка - 4.74
0 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 63

Сортировка двумерного массива

04.12.2008, 23:17. Показов 5104. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задачка с 3-ох пунктов. Первый я сделал(создать многомерный целочисельный масив заданый пользователем). А вот с двумя никак не могу разобратся. Вроде как и легко, но не могу =((
Второе: реализовать функцию сортировки двумерного массива с левого верхнего до правого нижнего угла!(По строках)
Пример:
1 2 3
4 5 7

Третье: Реализовать функцию для сортировки столбцов двумерного массива за суммой значений елементов в столбце.

И ещё вопросик. Как сделать проверку на корректность вводимых значений. Мне нужно чтоб только цифры можна было ввести, а на всё другое Писало ERROR. Я думал как-то через ASCII таблицу.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2008, 23:17
Ответы с готовыми решениями:

сортировка двумерного массива
помоги отсортировать двумерный массив как в примере пример: 2 4 6 1 2 3 1 5 9 ...

Сортировка двумерного массива
25) В каждой строке матрицы A(n, n) найти наибольший элемент и поменять его местами с соответствующим диагональным элементом. #include...

Сортировка двумерного массива
По бумажке расписал - вроде всё правильно, но работает некорректно. Где ошибка? void sort(int **p, int n, int m) { int...

3
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
05.12.2008, 00:33
Каждая строка двумерного массива - есть одномерный массив.Алгоритмы сортировки есть в FAQ.
Сортировка столбцов - несколько сложнее. Сделай функции,скажем, csum(int ** mas,int i ) и cswap(int ** mas,int i,int j). csum будет считать сумму i-го столбца ,cswap - менять местами i-й и j-й. После этого реализуешь сортировку,используя эти ф-ии. Разбивай задачу на меньшие - все сразу пойдет.

Для проверки ввода используй такой факт: в ASCII коды символов
'0' '1' ... '9' идут подряд. Т.е если код введенного символа не лежит в промежутке
['0','9'] - он не цифра.
еще есть функция стандартной библиотеки,но я сейчас название не вспомню
isnum вроде. Не важно,используй сравнение. )
0
17 / 16 / 6
Регистрация: 20.11.2008
Сообщений: 81
05.12.2008, 00:52
2) сортировки по строкам, т.е.
1 3 8 10
2 3 7 11
так что ли?!?!
Так это запросто!
3) Реализовать функцию для сортировки столбцов двумерного массива за суммой значений елементов в столбце. <----- это вообще про что?! Оо

Добавлено через 18 минут 58 секунд
Вот тебе, можно сказать 1 + 2 задачи!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <conio.h>
#include <time.h>
 
using std::cout;
using std::cin;
//using std::setw;
 
void printArr(int** arr,int n,int m)
{
    cout<<"\n";
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cout.width(5);
            cout<<arr[i][j];
        }
        cout<<"\n";
    }
}
 
void fillArr(int** arr,int n,int m)
{
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            arr[i][j]=rand()%100-50;
}
 
void swap(int &a,int &b)
{
    int tmp=a;
    a=b;
    b=tmp;
}
 
void bubbleSort(int** arr,int n,int m, char c)
{
    for(int i=0;i<n;i++)
        for(int j=0;j<m-1;j++)
            for(int k=j+1;k<m;k++)
                switch(c)
            {
                case '>':
                    if(arr[i][j]<arr[i][k])
                        swap(arr[i][j],arr[i][k]);
                    break;
                case '<':
                    if(arr[i][j]>arr[i][k])
                        swap(arr[i][j],arr[i][k]);
                    break;
                default:
                    cout<<"BAD Symbol!!!";
                    return;
            }
}
 
 
int main()
{
    srand(time(NULL));
    rand();
    int n,m;
    cout<<"Enter dimension of your Array: ";
    //cin>>n>>m;
    n=6;m=12;
 
    int** arr=new int*[n];
    for(int i=0;i<n;i++)
        arr[i]=new int[m];
 
    fillArr(arr,n,m);
    printArr(arr,n,m);
    bubbleSort(arr,n,m,'>');
    printArr(arr,n,m);
    bubbleSort(arr,n,m,'<');
    printArr(arr,n,m);
 
    for(int i=0;i<n;i++)
        delete [] arr[i];
    delete [] arr;
 
    getch();
}
3-ю просто не понял что нужно сделать!
0
0 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 63
05.12.2008, 14:59  [ТС]
3) Реализовать функцию для сортировки столбцов двумерного массива за суммой значений елементов в столбце. <----- это вообще про что?! Оо
Ето например:

1 2 4
2 3 4
5 11 7

потом программа суммирует : 1+2+5=8; 2+3+11= 16; 4+4+7=15
После етого программа делает сортировку етих стобцов :
1 4 2
2 4 3
5 4 11
Потом программа заканчивается =))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2008, 14:59
Помогаю со студенческими работами здесь

Сортировка двумерного массива
Добрый день. Дано было такое задание . &quot;Даны два числа n и m. Создать матрицу размером и заполнить случайными числами в диапазоне ....

Сортировка двумерного массива
Необходимо отсортировать массив сортировкой Шелла с шагом d=N /2^i: в одной программе сортировать четные столбцы по убыванию, а нечетные...

Сортировка двумерного массива
Задача: Написать код сортировки двумерного массива размерностью m*n. Переставить строки матрицы так, чтобы элементы k-го столбца были...

Сортировка двумерного массива
Дан массив С. Составить алгоритм, который в случае если количество элементов, предшествующий максимальному, больше количества элементов,...

Сортировка двумерного массива
Массивы


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru