Показать сообщение отдельно
Трэй
Аватар для Трэй
Сообщения: 8,137
Регистрация: 30.09.2008
Старый пост, нажмите что бы добавить к себе блог 9 апреля 2011, 16:24
LastFm
  #1186 (ПС)
-Цитата от иксуй! Посмотреть сообщение
-Цитата от Трэй Посмотреть сообщение
-Цитата от иксуй! Посмотреть сообщение
внимательно смотри как у тебя p и k меняются. их надо не там увеличивать и уменьшать, а в первом цикле.
Показать скрытый текст
Код:
begin
     if k>=p then
     begin
          for i:=1 to n do
          begin
               for j:=p to k do
               begin
                    s:=s+a[i,j];
               end;
               p:=p+1;
               k:=k-1;
          end;
     end
     else break;
end;

ответ 32
Условный оператор тоже нужно во внешний цикл по i перенести. У тебя же условие это всего один раз перед входом в цикл проверяется.
всё равно не получается
я уже 3 способами её пытаюсь сделать и всё равно нихуя(((

всё, получилось

спасибо, иксуй за подсказки

решение
var a:array[1..50,1..50] of integer;
s,p,k,n,i,j,q:integer;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
readln(a[i,j]);
end;
end;
s:=0;
p:=2;
k:=n-1;
for q:=1 to n do
begin
if k>=p then
begin
for i:=1 to n do
begin
for j:=p to k do
begin
s:=s+a[i,j];
end;
p:=p+1;
k:=k-1;
end;
end
else break;
end;
writeln(s);
readln;
end.


Последний раз редактировалось Трэй, 9 апреля 2011 в 17:23.
offline
Ответить с цитированием