|
|
|
|
|
|
|
Вернуться
| 1 Андрій Дудка, 24 июня 2013 г. 15:07:31 | |
|
j := j - 1;
|
|
|
| 2 Андрій Дудка, 24 июня 2013 г. 15:05:50 | |
1. У вас изначально i = 0; j = n-1 - а не 1 и n соотвественно. 2. В вашей функции, в конце менять надо не i1, j1 - они локальные, а менять надо i, j : if a[i1]>=a[j1] then begin t:=a[i1]; i:=i+1; end else begin t:=a[j1]; j:=-1 end; У себя не проверял, но думаю в етом ошыбка.
|
|
|
| 3 Алексей Зуенок, 23 июня 2013 г. 23:43:32 | |
Решаю задачу 98 "Игра в числа" Алгоритм простенький. Написал программу var a:array[1..10000] of longint; s1,s2,k,n,i,j,p:longint; function max(var a:array of longint; var i1,j1: longint):longint; var t:longint; begin if a[i1]>=a[j1] then begin t:=a[i1]; i1:=i1+1; end else begin t:=a[j1]; j1:=j-1 end; //writeln(a[i1],' ',a[j1],' ',t); max:=t end; begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(n); for i:=1 to n do read(a[i]); s1:=0; s2:=0; i:=0; j:=n-1; for k:=1 to n do if k mod 2=1 then s1:=s1+max(a,i,j) else s2:=s2+max(a,i,j); write(s1,':',s2); close(output) end. Долго выдавала неверный результат. Выяснил причину: при передаче параметров i, j в функцию они самопроизвольно увеличивались на 1 (изначально i=1,j=n). В чем может быть причина? P.S. не первая задача где параметры самопроизвольно изменяют свое значение. Может кто знает причину сего неподобства?
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |