Урок 18 Задача 06
Primary tabs
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
Вася 485 Коля 555 Юра 61 .......... .... end // признак завершения ввода(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.
Решение:
program u18z06;
type arrInt = array [1..3] of integer;
arrStr = array [1..3] of string;
var s,s0:string;
i,j,Code,k,m,maxScore:integer;
ball: arrInt;
name: arrStr;
procedure abc123(s:string; var name:string; var ball:integer);
begin
j:=1;
for i:=1 to length(s) do
begin
if(s[i]>='0')and(s[i]<='9') then
s0:=s0+s[i]
else
begin
if s[i]<>' ' then
name:=name+s[i];
if s0<>'' then
begin
s0:='';
j:=j+1;
end;
end;
Val(s0,ball,Code);
end;
end;
procedure pobeda(name:arrStr; ball:arrInt);
begin
for i:=1 to 3 do
begin
write(name[i],' ',ball[i]);
writeln();
if ball[i]>maxScore then
begin
maxScore:=ball[i];
m:=i;
end;
end;
write('Pobedil: ',name[m],' | rezultat: ',ball[m]);
end;
begin
while (s<>'end') do
begin
writeln('vvedite stroku: ');
readln(s);
k:=k+1;
abc123(s,name[k],ball[k]);
end;
maxScore:=0;
m:=0;
pobeda(name,ball);
readln();
end.
Консоль:
vvedite stroku: dima 123 vvedite stroku: misha 321 vvedite stroku: katya 111 vvedite stroku: end dima 123 misha 321 katya 111 Pobedil: misha | rezultat: 321
- Log in to post comments
- 832 reads