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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчитать произведение всех элементов, находящихся ниже главной диагонали матрицы http://www.cyberforum.ru/cpp-beginners/thread453892.html
я делала так. но ничего не получаеться private void button1_Click(object sender, EventArgs e) { int n = 10; int i, j; int a = new int; Random rnd = new Random(); d = 1; for i=0; i <n; i++) {
C++ Линейный конгруэнтный метод Здравствуйте, делаю програму Линейный конгруэнтный метода. вроде все работает адекватно, последовательность есть, только проблема в том что нету ПЕРИОДА. не могу понять как это сделать. посмотрите код. #include <iostream> #include <conio> using std::cout; using std::cin; using std::endl; int main () http://www.cyberforum.ru/cpp-beginners/thread453887.html
C++ Область видимости
Даю фрагмент программы: #include <iostream> #include <stdio.h> #include <cmath> struct elem //тип элемента двусвязного списка { float st, kf; elem *next,*pred; };
C++ Разветвленные процессы
Добрый день. Нужно составить программу в среде Dev-C++ предназначенную для обработки разветвленных процессов. Пользователь вводит значение x. Найти значение y в соответсвии с вариантом. Вывести на экран: x, a, b, y, для подсчетов использованную функцию. В случае недопустимого ввода вывести сообщение об ошибке. Что-то вроде составила, дальше тупик полнейший. Да и время поджимает(((...
C++ Вызов конструктора с несколькими параметрами при использовании push_back() в vector'е http://www.cyberforum.ru/cpp-beginners/thread453843.html
Ситуация: #include <vector> class bar { public: bar(); bar(int); bar(int, int); //<...> };
C++ Метод половинного деления Методом половинного деления найти решение следующего нелинейного уравнения с точностью е=0,01; e=0,001; e=0,0001; e=0,00001; e=0,000001. x^3-10*x+5=0 (x<0). подробнее

Показать сообщение отдельно
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
28.02.2012, 00:47     Сортировка двумерного массива
Цитата Сообщение от Getter Посмотреть сообщение
А без векторов если?
можно так:
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <algorithm>
 
void mysort(int m[][2], const int size, bool (*)(int, int));
inline bool asc(int a, int b)
{
    return a < b;
}
inline bool des(int a, int b)
{
    return a > b;
}
 
int main()
{
    int m[5][2];
    int choise;
 
    srand(time(NULL));
 
    for(int i = 0; i < 5; i++)
    {
        for(int j = 0; j < 2; j++)
        {
            m[i][j] = rand() % 10 + 1;
            std::cout << std::setw(5) << m[i][j];
        }
 
        std::cout << std::endl;
    }
 
    std::cout << std::endl;
 
    do
    {
            std::cout << "1. сортировать по возрастанию"
                      << "\n2. сортировать по убыванию"
                      << std::endl;
 
        std::cin >> choise;
 
    } while(choise < 1 || choise > 2);
 
    if(choise == 1)
        mysort(m,5,des);
    else
        mysort(m,5,asc);
 
    for(int i = 0; i < 5; i++)
    {
        for(int j = 0; j < 2; j++)
            std::cout << std::setw(5) << m[i][j];
 
        std::cout << std::endl;
    }
 
    return 0;
}
 
void mysort(int m[][2], const int size, bool (*func)(int, int))
{
    bool work = true;
 
    while(work)
    {
        int change = 0;
 
        for(int i = 0; i < size - 1; i++)
            if((*func)(m[i][0],m[i+1][0]))
            {
                std::swap(m[i][0],m[i+1][0]);
                std::swap(m[i][1],m[i+1][1]);
 
                change++;
            }
 
        if(!change)
            work = false;
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru