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

Сортировка матрицы по условию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заполнить все окно вывода прямоугольными треугольниками http://www.cyberforum.ru/cpp-beginners/thread1056095.html
В текстовом режиме заполнить все окно вывода прямоугольными треугольниками с прямым углом внизу слева, границы которых состоят из произвольных символов. Составить и использовать функцию для рисования границы одной фигуры. Фигуры внутри не заполняются. Параметры функции: текстовые координаты одной из точек фигуры, один или два размера фигуры и символ.
C++ Как програмно запустить презентецию MS PowerPoint 2013 Суть проблемы я создал программно презентацию PowerPoint, теперь необходимо открыть его непосредственно в PowerPoint в ходе выполнения своей программы. http://www.cyberforum.ru/cpp-beginners/thread1056090.html
C++ Упорядочить массив по возрастанию
Заданный массив записей с информацией о продукции предприятия: название изделия, код изделия, количество, цена. Упорядочить этот массив по возрастанию кода изделия.
Поправить код программы C++
Здравствуйте, уважаемые программисты. Очень нужна ваша помощь - не хочет работать код. Очень благодарен за любую помощь. Методические указания Ввод и вывод массива, а также три пункта задания оформить в виде функций, глобальные переменные не использовать. Размерности массивов вводить в основной функции. Первый массив описать статически (размерность задать константой), второй динамически...
C++ Но, что нужно вводить в консольном окне, чтобы был отличный от нуля результат? http://www.cyberforum.ru/cpp-beginners/thread1056078.html
Задание: минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Программа должна работать правильно по-идее. Но, что нужно вводить в консольном окне? Подскажите, пожалуйста. Видимо ввожу что-то не так, потому что сумма получается всегда равна нулю. #include "stdafx.h" #include <iostream> using namespace std; int main();
C++ Функция, переводящая вектор в список, а список в вектор Привет всем. Доброго вам времени суток. У меня тут загвоздочка в проге, точнее в одной функции. В программе я написала выполнение класса Список и класса Вектор. Оно немного корявое, конечно, но я только учусь. Всё работает, всё нормально И вот какая загвоздочка: надо написать функцию (именно одну!), которая переводила бы вектор в список, а список в вектор. По идее же эта функция, в зависимости... подробнее

Показать сообщение отдельно
es_
201 / 201 / 46
Регистрация: 14.01.2013
Сообщений: 455
25.12.2013, 14:00     Сортировка матрицы по условию
Вот, накатал на скорою руку, но работает правильно:
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
85
86
87
88
89
90
91
92
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <time.h>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    setlocale(LC_ALL,"Russian");
    const int N = 5;
    int matrix[N+15][N+15],sumch=0,sumnch=0;
    int i,j;
    cout<<"Случайная матрица: \n";
    for(i=0;i<N+15;i++)
    {
        for(j=0;j<N+15;j++)
        {
            matrix[i][j] = rand()%((N+15)*2+1) -N-15;
            cout<<matrix[i][j]<<" ";
            if(matrix[i][j]%2==0)
            {
                sumch+=matrix[i][j];
            }
            else
            {
                sumnch+=matrix[i][j];
            }
        }
        cout<<endl;
    }
    if(sumch>sumnch)
    {
        cout<<"Сумма чётных числе больше чем сумма нечётных, поэтому сортируем по возрастанию: \n";
        for(int k = 0; k < (N+15) * (N+15); ++k) {
            for( i = 0; i < (N+15); ++i) {
                for( j = 0; j < (N+15); ++j) {
                    if(j != (N+15) - 1) {  
                        if(matrix[i][j+1] < matrix[i][j]) {
                            int tmp = matrix[i][j+1];
                            matrix[i][j+1] = matrix[i][j];
                            matrix[i][j] = tmp;
                        }
                    }
                    else {
                        if((matrix[i+1][0] < matrix[i][j]) && (i != (N+15) - 1)) {
                            int tmp = matrix[i+1][0];
                            matrix[i+1][0] = matrix[i][j];
                            matrix[i][j] = tmp;
                        }
                    }
                }
            }
        }
    }
    else
    {
        cout<<"Сумма чётных числе небольше чем сумма нечётных, поэтому сортируем по убыванию: \n";
        for(int k = 0; k < (N+15) * (N+15); ++k) {
            for( i = 0; i < (N+15); ++i) {
                for( j = 0; j < (N+15); ++j) {
                    if(j != (N+15) - 1) {  
                        if(matrix[i][j+1] > matrix[i][j]) {
                            int tmp = matrix[i][j+1];
                            matrix[i][j+1] = matrix[i][j];
                            matrix[i][j] = tmp;
                        }
                    }
                    else {
                        if((matrix[i+1][0] > matrix[i][j]) && (i != (N+15) - 1)) {
                            int tmp = matrix[i+1][0];
                            matrix[i+1][0] = matrix[i][j];
                            matrix[i][j] = tmp;
                        }
                    }
                }
            }
        }
    }
    cout<<"Отсортированная матрица: \n";
    for(i=0;i<N+15;i++)
    {
        for(j=0;j<N+15;j++)
        {
            cout<<matrix[i][j]<<" ";
        }
        cout<<endl;
    }
    system("PAUSE > void");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru