Урок 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
- 702 reads