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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ dynamic_cast http://www.cyberforum.ru/cpp-beginners/thread22683.html
#include <iostream> class B { public: virtual void foo(){std::cout<<"B";} private: int a; }; class D : public B { public: void foo(){std::cout<<"D"<<std::endl;}
C++ Функция, которая при вводе натурального числа выводит количество цифр в нем и их сумму Написать и протестировать функцию которая при вводе натурального числа выводит количество цифр в нем и их сумму. Пример : натуральное число 8564 количество цифр 4 сумма цифр 23 http://www.cyberforum.ru/cpp-beginners/thread22674.html
Функция atoi, без использования библиотеки string C++
функции atoi, без использования библиотеки string
C++ Вопрос по массивав, "институтский" вопрос.
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) Какие операторы надо записать до оператора int(*a) = new int чтобы был открыт массив, содержащий 5 строк и 10 столбцов В документации подобного не нашел. С программистами пообщался - такого не встречали. Такое может быть вообще в природе? И соответствует ли это стандарту: ANSI C++ ?
C++ Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки) http://www.cyberforum.ru/cpp-beginners/thread22609.html
состоит из слов, разделенных одним или несколькими пробелами. Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). Если таких слов несколько, найти первое из них. :)
C++ Реализовать функцию, которая получает массив и возвращает количество простых чисел в нем. НАРОД ПОМОГИТЕ С ЗАДАЧЕЙ,ЕСТЬ ИСХОДНИК. РЕАЛИЗОВАТЬ ФУНКЦИЮ КОТОРАЯ ПОЛУЧАЕТ МАССИВ И ВОЗВРАЩАЕТ КОЛ-ВО ПРОСТЫХ ЧИСЕЛ В НЕМ #include<iostream> using namespace std; void input (int,int); void output (int,int); int prostoe (int,int ); int main() подробнее

Показать сообщение отдельно
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
15.06.2013, 16:01     Сортировка двумерного массива по возрастанию
Сел и задумался над этой задачкой без попыток подсмотреть и у меня за 2 часа пыхтения вот что получилось:
любой массив в памяти записывается последовательно, дополнительные индексы служат лишь упрощением для поиска элементов. Вот я и взял простейший алгоритм сортировки "погружения" или "пузырьковой", добавил бардюр, что бы сортировка не вылезла за пределы массива, и у меня получилась довольно простенькая программа. Возможно варианты выше будут правильнее за счет масштаба, но в случае, если вообще никак не получается вразумить как это работает, мой текст вмещает только все самое элементарное, в нем разберется даже новичек, который с++ знаком на 0 уровне.
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
//сортировка пузырьком
#include <iostream.h>
 
const int size =4;
 
void print_MAC (int[][size]);   // подключаемая фу-ция для вывода массива
main ()
{   
    int MAC[size][size]={{1,6,2,8},{9,0,7,9},{7,2,4,1},{5,2,1,8}};// предопределенный массив
    print_MAC(MAC);
    
    
    for(int pass=0; pass<(size*size);pass++)//for 1|    проход по всему массиву
    {                                       
        for (int a = 0;a<size;a++)          // for 2|           вторичный проход 
        {   
            for (int b=0;b<size;b++)        // 1 проход  for 3| первичный проход
            {   
                if (a==size-1 && b+1==size)     
                ;                           //пустой оператор для более  
                                            // доходчивого  if'a  
                else                        // "бардюр"
                {
                if (MAC[a][b]>MAC[a][b+1])// меня знак '>' на '<' меняем и  
                                            // сортировку по возрастанию,
                                            // на по убыванию соответственно
                {                                                   
            int hold=MAC[a][b];                         //Сортировка по строке
            MAC[a][b]=MAC[a][b+1];
            MAC[a][b+1]=hold;                           
                }           // сортировка
                }           // закрытие "бардюра"
                
            }               // закрытие for 3
    
        }                   // close for 2
    
    }                       // close for 1
    cout<<endl<<endl;
    print_MAC(MAC);
    return 0;
}
 
 
 
////////////////////////////////////////////////////////////////////////////////
                            // В Ы В О Д   М А С С И В А
////////////////////////////////////////////////////////////////////////////////
void print_MAC (int c[][size])
{   
    cout<<"\n\n";
    for (int A=0; A<size;A++)
    {
        for (int B=0;B<size;B++)
            cout<<c[A][B]<<" ";
        
        cout<<"\n";                     //вывод модифицированного массива
    }
    cout<<"\n\n\n"; 
        
}
////////////////////////////////////////////////////////////////////////////////
Главное помнить, что 5-ый элемент 4-ой строки надо исключать, а то в массив попадет мусор. (MAC[3][4])
 
Текущее время: 09:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru