Форум программистов, компьютерный форум, киберфорум
Наши страницы

Жадный алгоритм для определения последовательности обхода городов. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсивная сортировка разделением http://www.cyberforum.ru/cpp-beginners/thread224291.html
ниже привел код рекурсивной сортировки разделением, но она сортирует нормально, если в массиве представлены только уникальные элементы, а если появляются одинаковые, то зацикливается... не могу...
C++ Блок схема для Паскаля Помогите с блок схемой(Особое благодарность Натали) Вот задача Записать в файл последовательного доступа N натуральных чисел: a1, a2,..., an (числа получить с помощью датчика случайных чисел).... http://www.cyberforum.ru/cpp-beginners/thread224259.html
Если в матрице есть одна строка, сумма элементов которой отрицательна, создать новую матрицу по правилу C++
Люди, кто-нибудь знает как задачку решить? Хотя бы на мысль подтолкните плизззз)) Составить программу, которая получает матрицу А размером m*n. Если в исходной матрице есть, по крайней мере,...
C++ Многомерные массивы и строки.
Извиняюсь, что просто с нуля, но очень надо. Будьте добры) Программирование на языках С 1)Дана целочисленная квадратная матрица. Определить: а)сумму элементов в тех столбцах, которые не...
C++ запись структуры в файл http://www.cyberforum.ru/cpp-beginners/thread224224.html
ПОМОГИТЕ пожалуйста......... не могу сделать так чтобы в файл по завершению работы программы записывалось действие которое выполнялось......например...считалась сред.зарплата-----и в файл...
C++ Блог схема Пожалуйста помогите с блог схемой! Вот условие задачи: Записать в файл последовательного доступа N натуральных чисел: a1, a2,..., an (числа получить с помощью датчика случайных чисел).... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.01.2011, 09:58
Попробуйте вот это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for(j=1;j<kolvo;j++)                            //Начинаем просмотр в строке
{       double mvstr=1000;
                if(ras[i][j]<mvstr && ras[i][j]!=0) //Если элемент меньше mvstr и ненулевой - он минимальный
                {       
                        mvstr=ras[i][j];
                }
                        
                        ras[j][i]=100000;       //Присваиваем заведомо большое значение этому же элементу, лежащему по другую сторону диагонали (чтобы гарантированно он не был минимальным)
                        marshrut[n+1]=j;        //Записываем в массив номер столбца этого элемента
                        i=j;                    //Фиксируем строку i. В ней будем искать дальше минимальный элемент.
                        int stolbec=j;          //Фиксируем номер столбца, чтобы заполнить его заведомо большими значениями 
                        n++;                    //Сдвигаем n на 1
                        printf("%lf !!", mvstr);//Заполняем столбец.
                                for(int ii=0; ii<kolvo; ii++)
                                {
                                ras[ii][stolbec]=100000;
                                }
}
заменить на:
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
while(n<colvo-1)
{
    double mvstr=1000;
    int j_temp=0;
    if(i==0) j_temp=1;
    for(j=0;j<kolvo;j++)                            //Начинаем просмотр в строке
    {   
        if(ras[i][j]<mvstr && ras[i][j]!=0) //Если элемент меньше mvstr и ненулевой - он минимальный
        {                               
            mvstr=ras[i][j];
            j_temp=j;
        }
    }
    ras[j_temp][i]=100000;       //Присваиваем заведомо большое значение этому же элементу, лежащему по другую сторону диагонали (чтобы гарантированно он не был минимальным)
    marshrut[n+1]=j_temp;        //Записываем в массив номер столбца этого элемента
    i=j_temp;                    //Фиксируем строку i. В ней будем искать дальше минимальный элемент.
    int stolbec=j_temp;          //Фиксируем номер столбца, чтобы заполнить его заведомо большими значениями 
    n++;                    //Сдвигаем n на 1
    printf("%lf !!", mvstr);//Заполняем столбец.
    for(int ii=0; ii<kolvo; ii++)
    {
        ras[ii][stolbec]=100000;
    }
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru