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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
romanu416
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 15
#1

Длина пути между городами - C++

18.01.2014, 19:29. Просмотров 460. Ответов 2
Метки нет (Все метки)

Прошу помощи в решении задачи.
Я не могу поняты как это сделать потому прошу вашей помощи.

Надо найти путь который прошел автомобиль, мы пишем через какие города он ехал, а программа находит путь который он прошел.

1.Данные расстояния между городами для примера.
Львов-Киев = 300
Тернополь-Львов = 100
Харьков-Львов = 400
Киев-Тернополь = 350
Киев-Харьков = 150
Тернополь-Харьков = 450

2.Приклад ввода:
Львов
Киев
Харьков

3.вивид:
450
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2014, 19:29     Длина пути между городами
Посмотрите здесь:

C++ АТД Графы. Поиск суммы расстояний между городами.
C++ Найти минимальное количество пересадок между двумя городами
Расстояние между двумя ближайшими городами C++
C++ Расстояние между двумя ближайшими городами
Найти вероятность существования пути в графе между заданными точками C++
C++ Vector - найти наименьшее и наибольшее расстояния между городами
C++ Графы, нахождение наименьшего пути между вершинами обходом в ширину
Автоматически построить дороги из единиц между "городами" C++
Построить дороги из единиц между городами из "-1" C++
C++ Найти расстояние между городами на Земле по координатам
Вывести таблицу расстояний между городами C++
C++ Найти кратчайшие пути между двумя заданными точками графа

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
loki_13
Сообщений: n/a
19.01.2014, 00:27     Длина пути между городами #2
годный совет - нарисуй на листочке расположение городов и нарисуй стрелочками возможные маршруты и все станет очень понятно
MrGluck
Ворчун
Эксперт CЭксперт С++
6404 / 3602 / 448
Регистрация: 29.11.2010
Сообщений: 9,528
19.01.2014, 01:37     Длина пути между городами #3
Создайте матрицу расстояний, в ней будут записаны расстояния от каждого города к каждому.

Добавлено через 54 минуты
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
#include <iostream>
#include <string>
#include <tuple>
#include <vector>
#include <windows.h>
 
typedef std::tuple<std::wstring, std::wstring, int> combination;
typedef std::vector<combination> distances;
 
int length(const distances &d, const std::wstring &from, const std::wstring &to)
{
    int result = 0;
    for (auto &p: d)
        if ((std::get<0>(p) == from && std::get<1>(p) == to) ||
            (std::get<0>(p) == to   && std::get<1>(p) == from) )
        {
            result = std::get<2>(p);
        }
 
    return result;
}
 
int main()
{
    setlocale(LC_ALL, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const distances d = {
        std::make_tuple(L"Львов",     L"Киев",      300),
        std::make_tuple(L"Тернополь", L"Львов",     100),
        std::make_tuple(L"Харьков",   L"Львов",     400),
        std::make_tuple(L"Киев",      L"Тернополь", 350),
        std::make_tuple(L"Киев",      L"Харьков",   150),
        std::make_tuple(L"Тернополь", L"Харьков",   450)
    };
 
    int result = 0;    // суммарная длина
    std::wstring last; // последний город
 
    std::wcin >> last;
    std::wcin.ignore();
    for (std::wstring tick; std::getline(std::wcin, tick) && !tick.empty(); last = tick)
        result += length(d, last, tick);
 
    std::wcout << L"Результат: " << result << std::endl;
}
Yandex
Объявления
19.01.2014, 01:37     Длина пути между городами
Ответ Создать тему
Опции темы

Текущее время: 09:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru