Допустим, в языке есть встроенная функция
Min(a,b) которая определяет мин из двух значений. Тогда алгоритм выглядит так
х=Мin(a,b);
x=Min(x,c);
А если нужно найти мин из N чисел, которые запрятаны в массив А(n), то так
x=999999999999999999999; // какое-то ОЧЕНЬ большое число
Для ц=1 по N цикл
x = Min(x,A(ц));
КонецЦикла;
А что, если такой функции в языке нет, спросишь ты, тогда её нужно написать самому, например, так
Функция Min(a,b)
Если a<b Тогда
Возврат(а);
Иначе
Возврат(b);
КонецЕсли;
КонецФункции
Вот и всЁ! Учитесь мыслить алгоритмически структурно, разбивая сложный алгоритм на ряд простых и понятных, и всё будет очень просто.
Успехов!
#include <cstring>
#include <vector>
#include <algorithm>
struct StudentData
{
std::string name;
std::string surname;
int math;
int phys;
int comp_science;
};
bool
comp(const StudentData &a, const StudentData &b)
{
int tmp1 = a.math + a.phys + a.comp_science;
int tmp2 = b.math + b.phys + b.comp_science;
return tmp1 > tmp2 ? true : false;
}
int
main(void)
{
int n;
std::cin >> n;
std::vector< StudentData > data(n);
for (int i = 0; i < n; i++) {
std::cin >> data[i].name >> data[i].surname;
std::cin >> data[i].math >> data[i].phys >> data[i].comp_science;
}
std::sort(data.begin(), data.end(), comp);
for (int i = 0; i < n; i++) {
std::cout << data[i].name << " " << data[i].surname << std::endl;
}
return 0;
}
Допустим, в языке есть встроенная функция
Min(a,b) которая определяет мин из двух значений. Тогда алгоритм выглядит так
х=Мin(a,b);
x=Min(x,c);
А если нужно найти мин из N чисел, которые запрятаны в массив А(n), то так
x=999999999999999999999; // какое-то ОЧЕНЬ большое число
Для ц=1 по N цикл
x = Min(x,A(ц));
КонецЦикла;
А что, если такой функции в языке нет, спросишь ты, тогда её нужно написать самому, например, так
Функция Min(a,b)
Если a<b Тогда
Возврат(а);
Иначе
Возврат(b);
КонецЕсли;
КонецФункции
Вот и всЁ! Учитесь мыслить алгоритмически структурно, разбивая сложный алгоритм на ряд простых и понятных, и всё будет очень просто.
Успехов!