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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Блок схема для Паскаля http://www.cyberforum.ru/cpp-beginners/thread224259.html
Помогите с блок схемой(Особое благодарность Натали) Вот задача Записать в файл последовательного доступа N натуральных чисел: a1, a2,..., an (числа получить с помощью датчика случайных чисел). Сформировать новый файл последовательного доступа, элементами которого являются числа а1, а1•а2, а1•а2•а3,..., al•a2•a3•...•an. Вот решение на Паскале) program mynumbers; var f1,f2:text; ...
C++ Если в матрице есть одна строка, сумма элементов которой отрицательна, создать новую матрицу по правилу Люди, кто-нибудь знает как задачку решить? Хотя бы на мысль подтолкните плизззз)) Составить программу, которая получает матрицу А размером m*n. Если в исходной матрице есть, по крайней мере, одна строка, сумма элементов которой отрицательна, то формируется новая матрица из исходной так, что строки в ней расположены в порядке возрастания сумм элементов этих строк. http://www.cyberforum.ru/cpp-beginners/thread224251.html
C++ Многомерные массивы и строки.
Извиняюсь, что просто с нуля, но очень надо. Будьте добры) Программирование на языках С 1)Дана целочисленная квадратная матрица. Определить: а)сумму элементов в тех столбцах, которые не содержат отрицательных эле¬ментов; б)упорядочить строки по убыванию произведений их элементов. 2)Дано предложение. Вывести его на экран, заменив каждую первую букву слов, начинающихся с гласной на...
C++ запись структуры в файл
ПОМОГИТЕ пожалуйста......... не могу сделать так чтобы в файл по завершению работы программы записывалось действие которое выполнялось......например...считалась сред.зарплата-----и в файл выводится----- все сотрудники+ Srednyaya zarplata= "<<sredzap<<" rublei :cry:......помогите ))))))))) #include <conio.h> #include <iostream>
C++ Блог схема http://www.cyberforum.ru/cpp-beginners/thread224206.html
Пожалуйста помогите с блог схемой! Вот условие задачи: Записать в файл последовательного доступа N натуральных чисел: a1, a2,..., an (числа получить с помощью датчика случайных чисел). Сформировать новый файл последовательного доступа, элементами которого являются числа а1, а1•а2, а1•а2•а3,..., al•a2•a3•...•an. Вот решение на С++: #include <fstream.h> #include <iostream.h> #include...
C++ Как правильно передавать указатели на класс на другую форму в общем добрый день, пытаюсь создать собственную телефонную книгу используя ооп. ну дак вот я описал в cpp файле два класса: один предок другого + управляющий класс. Начинаю привинчивать к формам, но у меня при добавлении нового человека вылазит ошибка: Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00408119 in module 'Project1.exe'.write... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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;
    }
}
 
Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru