Показать сообщение отдельно
Трэй
Аватар для Трэй
Сообщения: 8,137
Регистрация: 30.09.2008
Старый пост, нажмите что бы добавить к себе блог 9 апреля 2011, 15:57
LastFm
  #1183 (ПС)
-Цитата от иксуй! Посмотреть сообщение
-Цитата от Трэй Посмотреть сообщение
дан двумерный массив.найти сумму чисел стоящих в верхней части между главной и побочной диагональю
попытка решения
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];
inc(p);
odd(k);
end;
end;
end
else break;
end;
writeln(s);
readln;
end.

схема
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

ответ 13

в классе у меня выводил, что сумма равна 9, а сейчас вообще только 6
снова только 9.походу он не считает число из второй строки
внимательно смотри как у тебя 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

offline
Ответить с цитированием