Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
sergey.shuvalov
-6 / 1 / 5
Регистрация: 06.11.2011
Сообщений: 269
#1

Сортировка массива - C++

19.11.2011, 14:33. Просмотров 336. Ответов 1
Метки нет (Все метки)

Кто может объяснить 31 строку кода. Почему надо умножать на 30 ? И как строка будет выглядеть, если массив вводить вручную или массив скачен из файла ? От чего зависит эта величина ?



http://www.cyberforum.ru/cpp-beginners/thread553401.html



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
93
94
95
96
//Двумерные массивы - решение задач
 
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
void initMatrix(int[][7], const int, const int);
void replaceColumn(int[][7], const int, int, int);
void printMatrix(int[][7], const int, const int);
   
int main()
{
    const int column = 5, row = 7;
    int matrix[column][row];
    int counter, result, columnMin;
    
    srand(time(NULL));
    
    //инициализируем двумерный массив случайными величинами,
    //затем печатаем его
    initMatrix(matrix, column, row);
    cout << "\nNoSorted array" << endl << endl;
    printMatrix(matrix, column, row);
 
    //делаем проходы столько раз, сколько строк в массиве
    for(int N = 0; N < column - 1; N++)
    {
        result = row * 30;
        
        //анализируем массив и находим строку,
        //сумма элементов которой минимальная
        for(int i = N; i < column; i++)
        {
            //обнуляем счетчик суммы элементов строки
            counter = 0;
            
            //проходим по элементам данной строки
            //и считаем сумму
            for(int j = 0; j < row; j++)
                counter += matrix[i][j];
            
            //result в итоге будет хранить значение минимальной суммы
            //columnMin будет хранить значение строки, в которой
            //была найдена минимальная сумма
            if(result > counter)
            {
                result = counter;
                columnMin = i;
            }
        }
        
        replaceColumn(matrix, row, N, columnMin);
    }
    
    //печатаем отсортированный массив
    cout << "\nSorted array" << endl << endl;
    printMatrix(matrix, column, row);
    
    return 0;
}
   
//инициализация двумерного массива
void initMatrix(int matrix[][7], const int column, const int row)
{
    for(int i = 0; i < column; i++)
        for(int j = 0; j < row; j++)
            matrix[i][j] = rand() % 30;
}
   
//меняем строки массива местами
void replaceColumn(int matrix[][7], const int row, int N, int columnMin)
{
    int buffer[row];
    
    for(int j = 0; j < row; j++)
    {
        buffer[j] = matrix[columnMin][j];
        matrix[columnMin][j] = matrix[N][j];
        matrix[N][j] = buffer[j];
    }
}
   
//печать двумерного массива
void printMatrix(int matrix[][7], const int column, const int row)
{
    for(int i = 0; i < column; i++)
    {
        for(int j = 0; j < row; j++)
            cout << setw(3) << matrix[i][j];
        
        cout << endl;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2011, 14:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка массива (C++):

Сортировка массива: перенести положительные числа в начало, а отрицательные - в конец массива
Дан вещественный массив A(N). Отсортировать его таким образом, чтобы все...

Сортировка массива. Ошибка после ввода размерности массива
подскажите почему после ввода размерности массива выдает ошибку...

Сортировка массива структур через сортировку массива указателей
Ошибка возникает в функции void sort(student **ppStud, int k, char ch). Кто...

Сортировка массива, вместо массива выводит мусор
Здравствуйте Уважаемые жители форума! Есть рабочий код сортируем массив...

Указатели массива и сортировка массива
Доброго времени суток, вот бьюсь над проблемой, нужна программа которая б...

1
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.11.2011, 14:36 #2
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Почему надо умножать на 30 ?
нам то откуда это знать? спросите у автора кода
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 14:36
Привет! Вот еще темы с решениями:

сортировка массива
здравствуйте, посоветуйте пожалуйста, каким образом можно сортировать двумерный...

Сортировка массива
У меня есть цель наклепать сортировку с помощью (1)прямого выбора и и...

Сортировка массива
Задан массив из k чисел. Найти числа, входящие в массив только один раз....

Сортировка массива
Привет всем, в общем, нужно отсортировать массив. Вот что сделал, но не...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru