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

Двумерный массив в одномерный - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Список процессов с иконками http://www.cyberforum.ru/cpp-beginners/thread954595.html
Каким образом можно отабразить собственные иконки приложений в списке процессов? Процессы перечисляю так: HANDLE hProcessSnap; PROCESSENTRY32 pros32; int i=0; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); pros32.dwSize = sizeof(PROCESSENTRY32); while (Process32Next(hProcessSnap, &pros32)) { String ^_stNameProc = gcnew String(pros32.szExeFile);
C++ Что означают знаки подчеркивания впереди идентификатора? В исходнике при описании типа через typedef имя типа начинается с 2-х знаков подчеркивания. Дальше в программе это имя присутствует без подчеркиваний. Объясните, какую функцию выполняют эти знаки? http://www.cyberforum.ru/cpp-beginners/thread954580.html
Беда с подключением библиотеки C++
Доброго времени суток. Суть проблемы в том, что один и тот же код работает по разному в зависимости от того находится ли он в библиотеки или нет... Вот класс: class Bitmap { private: Pixel** pixels; Vector2 Size; public:
Как просмотреть цикл не последовательно в debugger'e? C++
Вот, например, есть цикл int a; a = 0; int n = 10000; for (int i = 1; i < n; i++) a = a+1; Возможно ли, и если да, то как в debugger'e посмотреть значения переменных, которые изменяются в цикле (в данном случае a), но не последовательно, а с интервалом через 100 итераций? т.е., можно ли запустить цикл, посмотреть значения, прокрутить 100 итераций, посмотреть значения и т. д.
C++ Программа поиска и удаления кавычек в текстовом файле http://www.cyberforum.ru/cpp-beginners/thread954545.html
Всем привет! Вот озадачился написанием программы для поиска и удаления двойных кавычек из текстовых файлов. К примеру, есть папка, в ней может быть несколько текстовых файлов. Нужно по очереди открыть каждый файл, проверить на наличие кавычек, в случае их нахождения, удалить их (кавычки), сохранить файл, и закрыть. Т.к в C++ мои познания довольно посредственны, прошу совета по алгоритму,...
C++ почему нельзя в операторе + возвращать оригинальное значение(по ссылке), а не копию. Второй час сижу над одним и тем же кодом и не могу понять, что не так. Не могу сообразить почему нельзя в операторе + возвращать оригинальное значение(по ссылке), а не копию. Вот шаблон класса "множество": #ifndef SET_H #define SET_H #include <iostream> #include <cstdlib> подробнее

Показать сообщение отдельно
allex
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 20

Двумерный массив в одномерный - C++

14.09.2013, 23:15. Просмотров 1394. Ответов 17
Метки (Все метки)

Здравствуцте,

Есть двумерный массив с отсортированными строками. нужно его преобразовать в одномерный отсортированный.
Алгоритм предлагаю следующий: (для массива 3*3)

перебираем 9 раз массив
если (эта строка непомеченная) ищем среди 1 столбца минимум и записываем его в одномерный.
затем "удаляем" минимальный элемент из двумерного массива.
если находим строку , где 1 элемент = последнему, значит помечаем эту строку=0.

вот код который у меня получился.
сортирует нормально, но когда доходит до помеченной строки, реагирует неправильно.
P.S. недавно начал программировать. объесняйте пожалуйста подробней ))

C++ (Qt)
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
include <iostream>
using namespace std;
 
int main( )
{
    int i,j,k,min,buf,n,stroka;
    int a[10][10], b[10], strk[10];
 
    for(i=0; i<9; i++)
    {
        b[i]=0;
        strk[i]=1;
    }
 
    for(i=0; i<3; i++)
        for (j=0; j<3; j++)
        {
            cout<<"введите элементы массива a"<<i<<j<<"\n";
            cin>>a[i][j];
        }
 
 
    cout<<"\n";
    for(i=0; i<3; i++)
        for (j=0; j<3; j++)
        {
            cout<<" "<<a[i][j];
        }
    cout<<"\n";
/////////////////////////////////////////////////////////////////////
    //j=0;
    k=0;
    buf=0;
    for (n=0; n<9; n++)
    {
        min=a[0][0];
        buf=0;
        for (i=1; i<3; i++)
        {
            //  stroka=1;
            if ((min>a[i][0])&&(strk[i]!=0))
            {
                min=a[i][0];
                buf=i;
            }
            else
            {
                min=a[i+1][0];
                break;
            }
            //  break;
        }
        if (k==0)
        {
            b[k]=min;
            cout<<min<<"-min";
            k++;
        }
        else    if (min!=b[k-1])
        {
            b[k]=min;
            cout<<min<<"-min";
            k++;
        }
        else strk[i]=0;
        for (j=0; j<2; j++)
        {
            //  if (a[buf][0]!=a[buf][2])
            {
                a[buf][j]=a[buf][j+1];
                cout<<a[buf][j]<<"=";
            }
            else
            {
                //  stroka=0;
                break;
            }
 
        }
    }
 
/////////////////////////////////////////////////////
    for(i=0; i<3; i++)
        for (j=0; j<3; j++)
        {
            cout<<" "<<a[i][j];
        }
    cout<<"\n";
    for(i=0; i<9; i++)
    {
        cout<<" "<<b[i];
    }
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru