В общую длину пути будет входить длина дороги AC = 10
Длина пути напрямую из C в F (CF) = 8.
Нам нужно проверить, если ли смысл ехать в другой нас. пункт из C, чтоб сократить общий путь.
Варианты, где расстояние из C в другой нас. пункт больше или равно CF отбрасываем. У нас остаются:
Теперь проверим, из какого из этих пунктов расстояние в F не превышает расстояние CF - 8.
Подсчитаем общий размер пути, который нужно преодолеть с самого начала и найдем наименьший
Длина кратчайшего пути между пунктами А и F, проходящая через пункт С = 15 (ACEF).
ответ: добавил <limits.h>, хотя на Visual С++ у меня без этого работало, и условие && a != 0 (что то не везёт мне с этой задачей)
#include <iostream>
#include <limits.h>
using namespace std;
int main()
{
int a, i, imin, amin;
setlocale(LC_ALL, "Russian");
cout << "Введите числа: ";
i = 0;
amin = INT_MAX;
imin = 0;
do {
i++;
cin >> a;
if (a < amin && a != 0) {
amin = a;
imin = i;
}
} while (a != 0);
if (i > 1)
cout << "\n№ минимального элемента = " << imin << endl;
else
cout << "\nПоследовательность пустая" << endl;
getchar();
В общую длину пути будет входить длина дороги AC = 10
Длина пути напрямую из C в F (CF) = 8.
Нам нужно проверить, если ли смысл ехать в другой нас. пункт из C, чтоб сократить общий путь.
Варианты, где расстояние из C в другой нас. пункт больше или равно CF отбрасываем. У нас остаются:
CB = 6CD = 2CE = 5Теперь проверим, из какого из этих пунктов расстояние в F не превышает расстояние CF - 8.
BF = 1DF = 4EF = 0Подсчитаем общий размер пути, который нужно преодолеть с самого начала и найдем наименьший
ACF = 10 + 8 = 18ACBF = 10 + 6 + 1 = 17ACDF = 10 + 2 + 4 = 16ACEF = 10 + 5 + 0 = 15Длина кратчайшего пути между пунктами А и F, проходящая через пункт С = 15 (ACEF).
ответ: добавил <limits.h>, хотя на Visual С++ у меня без этого работало, и условие && a != 0 (что то не везёт мне с этой задачей)
#include <iostream>
#include <limits.h>
using namespace std;
int main()
{
int a, i, imin, amin;
setlocale(LC_ALL, "Russian");
cout << "Введите числа: ";
i = 0;
amin = INT_MAX;
imin = 0;
do {
i++;
cin >> a;
if (a < amin && a != 0) {
amin = a;
imin = i;
}
} while (a != 0);
if (i > 1)
cout << "\n№ минимального элемента = " << imin << endl;
else
cout << "\nПоследовательность пустая" << endl;
getchar();
}