Как говорится, это вам не С++ - тут все очень быстро и коротко
// PascalABC.NET 3.3, сборка 1531 от 30.08.2017 // Внимание! Если программа не работает, обновите версию!
begin var L:=new List<(string,real)>; // это не решение задачи, это ввод данных Writeln('Введите в каждой строке фамилию, пробел, время'); var i:=1; repeat var s:=ReadlnString(i+': '); if s[1]='*' then break; var w:=s.ToWords; L.Add(Rec(w[0],real.Parse(w[1]))); i+=1; until false; // а теперь само решение Writeln(L.MinBy(x->x[1])) end.
Пример Введите в каждой строке фамилию, пробел, время 1: Иванов 10.3 2: Петров 9.9 3: Уточкин 10.1 4: * (Петров,9.9)
// PascalABC.NET 3.3, сборка 1531 от 30.08.2017
// Внимание! Если программа не работает, обновите версию!
begin
var L:=new List<(string,real)>;
// это не решение задачи, это ввод данных
Writeln('Введите в каждой строке фамилию, пробел, время');
var i:=1;
repeat
var s:=ReadlnString(i+': ');
if s[1]='*' then break;
var w:=s.ToWords;
L.Add(Rec(w[0],real.Parse(w[1])));
i+=1;
until false;
// а теперь само решение
Writeln(L.MinBy(x->x[1]))
end.
Пример
Введите в каждой строке фамилию, пробел, время
1: Иванов 10.3
2: Петров 9.9
3: Уточкин 10.1
4: *
(Петров,9.9)
int main()
{
int nn,kk;
printf("Enter peoples and -kk: ");
scanf("%d%d",&nn,&kk);
int n[nn];
int k = kk;
int sum, p, l = 0, i = 0, q = 0;
for(int i = 0; i < nn; i++)
{
n[i] = 1;
printf("%d ",n[i]);
}
printf("\n");
do{
sum = 0;
p = l;
q = 0;
for(int i = 0; i < nn; i++)
{
if(n[i])
{
sum++;
}
}
for(;q!=kk;)
{
if(i==nn) i = 0;
if(n[i])
{
p++;
q++;
}
if(q==kk)
{
n[i] = 0;
l = i;
}
i++;
}
for(int i = 0; i < nn; i++)
{
printf("%d ",n[i]);
}
printf("\n");
}while(sum>2);
for(int i = 0; i < nn; i++)
{
if(n[i])
{
printf("Last: %d#",i+1);
}
}
return 0;
}