Форум программистов, компьютерный форум CyberForum.ru

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

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

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

И ещё вопросик. Как сделать проверку на корректность вводимых значений. Мне нужно чтоб только цифры можна было ввести, а на всё другое Писало ERROR. Я думал как-то через ASCII таблицу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2008, 23:17     Сортировка двумерного массива
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
05.12.2008, 00:33     Сортировка двумерного массива #2
Каждая строка двумерного массива - есть одномерный массив.Алгоритмы сортировки есть в 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 вроде. Не важно,используй сравнение. )
StarWorm
17 / 16 / 4
Регистрация: 20.11.2008
Сообщений: 81
05.12.2008, 00:52     Сортировка двумерного массива #3
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-ю просто не понял что нужно сделать!
Rendll
0 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 63
05.12.2008, 14:59  [ТС]     Сортировка двумерного массива #4
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
Потом программа заканчивается =))
Yandex
Объявления
05.12.2008, 14:59     Сортировка двумерного массива
Ответ Создать тему
Опции темы

Текущее время: 07:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru