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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ IDE for Cpp http://www.cyberforum.ru/cpp-beginners/thread90974.html
Вобщем, чем больше я искал и вникал в тему тем больше разочаровывался. Одна IDE бесплатная, но для неё надо купить компилятор, Вторая бесплатная но гнилая, Третья тоже, и т.д. + Многие из бесплатных IDE по лицензионному соглашению обязывают тебя писать токо OpenSource программы по лицензии GNU, GPL. Вот собственно мой вопрос: Есть ли IDE для С++ 1) Бесплатная, т.е. свобода действий, ничем...
C++ Обновление файлов в каталогах Спасите человека. Нужна маленькая прога и код (на любом языке) которая смогла бы делать обновления файлов в разных, определенных каталогах, например: указать файлы для обновления (несколько штук) обновленные файлы с заменой нужно будет копировать в папки 0;1;2;3;01;02;31;35; и тд тоесть во все папки которые состоят из цифр. http://www.cyberforum.ru/cpp-beginners/thread90947.html
C++ СТРОКИ! поиск и вывод файла. Помочь оптимизировать...
Доброго времени суток! Нуждаюсь в помощи специалиста, так как сам не сильно силен в этом... Вообщем: Дан текстовый файл, мы его открываем, находим там слова одинаковые, считаем эти слова по количеству повторений и выводим в другой текстовый файл... к примеру: файл y.txt: -Привет, как дела? как настроение? -Мои дела хорошо. как настроение,скажу позже.
Рекурсивная функция C++
С клавиатуры вводится массив из 20 элементов. Заменить все отрицательные элементы суммой чётных! int x,h; void input(int i){ scanf("%d",&x); if (x%2==0) h+=x; if(i<20){ i++;
C++ Отделить корни уравнения графически. http://www.cyberforum.ru/cpp-beginners/thread90932.html
Ребята помогите решить такую задачку на си, если несложно. отделить корень уравнения графически. x*2^x=1.
C++ строка что здесь не правильно подскажите пожалуйста!!!при запуске программа сразу закрывается!! #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> int main(){ char *str, str1 = "gotoxy(52,,y) y++; printf(\"%1.1f\",s)", *stemp; char *m = " , ", *m1="y++", *m2="y+=1"; int n; подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.01.2010, 06:58     Сортировка строк матрицы
insideone, Код правильный, но по-моему все-таки нужно сделать сортировку строк матрицы 8*8. Для этого совсем не обязательно переводить числа в десятичную форму. Берем две строки, сравниваем значения начиная слева. Находим первые попавшиеся отличающиеся значения и делаем вывод: менять строки или переходим к следующим (все зависит от того какой вид сортировки выбран).
Взял за основу Ваш код:
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
#include <iostream>
#include "windows.h"
using namespace std;
 
int main()
{
     SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
        int InBin[8][8] = {
                {0 , 1 , 0 , 0 , 1 , 1 , 0 , 1},
                {1 , 0 , 0 , 0 , 1 , 1 , 0 , 0},
                {0 , 1 , 0 , 0 , 1 , 1 , 0 , 0},
                {0 , 1 , 0 , 0 , 0 , 1 , 0 , 0},
                {0 , 1 , 0 , 0 , 1 , 1 , 0 , 1},
                {0 , 0 , 1 , 0 , 0 , 1 , 0 , 0},
                {0 , 1 , 0 , 0 , 0 , 1 , 1 , 0},
                {0 , 0 , 0 , 0 , 0 , 0 , 0 , 1},
        }; // заполняем как надо
        bool SortUP = false, fl;
        int i, j, y, temp;
        cout << "Введите тип сортировки: 'по возрастанию' = 1,  'по убыванию' = 0"<<endl;
        cin >> SortUP;
        for(i=0; i<7; i++)
            for(j=0; j<7-i; j++)
            {
                fl=true;
                for(y=0; y<8 && fl; y++)
                {                   
                if(InBin[j][y]>InBin[j+1][y] && SortUP)
                {
                    for(y=0; y<8; y++)
                    {
                        temp=InBin[j][y];
                        InBin[j][y]=InBin[j+1][y];
                        InBin[j+1][y]=temp;
                    }
                    
                }
                if(InBin[j][y]<InBin[j+1][y] && SortUP)
                    fl=false;
                if(InBin[j][y]<InBin[j+1][y] && !SortUP)
                {
                    for(y=0; y<8; y++)
                    {
                        temp=InBin[j][y];
                        InBin[j][y]=InBin[j+1][y];
                        InBin[j+1][y]=temp;
                    }
                }
                if(InBin[j][y]>InBin[j+1][y] && !SortUP)
                    fl=false;
                }
            }
        for(i=0; i<8; i++)
        {
            for(j=0; j<8; j++)
                cout<<InBin[i][j]<<" ";
            cout<<endl;
        }
        return 0;
}
 
Текущее время: 23:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru