Помощь - Поиск - Пользователи - Календарь
Полная версия: Динамический список
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
forMator
Привет всем!! Дан динамический список. Нужно найти сумму пяти первых элементов. Подскажите почему сумма считается неправильно!!??

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

type pspis=^spisok;
spisok=record
data:integer;
next:pspis;
end;
Var i,n,a:integer;
x,y,u:pspis;
s:integer;
begin
{ TODO -oUser -cConsole Main : Insert code here }
s:=0;
u:=nil;
write('n=');readln(n);
for i:=1 to n do begin
new(Y);
WRITE('a=');readln(a);
y^.data:=a;
y^.next:=nil;
if u=nil then u:=y else x^.next:=y;
x:=y;
end;
writeln('vvedennii spisok:');
y:=u;
while y<>nil do begin
writeln(y^.data);
for i:=1 to n do 5 s:=s+y^.data; ----мне кажется что здесь моя ошибка!!
y:=y^.next;
end;
writeln('сумма=',s);
readln;
end.

volvo
writeln('vvedennii spisok:');
y:=u;
{ Сначала закончи выводить список... }
while y<>nil do begin
writeln(y^.data);
y := y^.next;
end;
{ ... а потом - будешь считать: }
y := u;
for i:=1 to n do begin
s:=s+y^.data;
y:=y^.next;
end;
writeln('сумма=',s);

forMator
Спасибо!
forMator
А как в динамическом списке подсчитать сумму элементов больших 1-го элемента?
У меня не получается. Помогите пожалуйста.


Program project1;
type pspis=^spisok;
spisok=record
data:nteger;
next:pspis;
end;
Var s,k,i,n,a:integer;
x,y,u:pspis;
begin
u:=nil; k:=0; s:=0;
write('n='); readln(n);
for i:=1 to n do begin
new(y);
write('a='); readln(a);
y^.data:=a;
y^.next:=nil;
if u=nil then u:=y else x^.next:=y;
x:=y;
end;
writeln('vvedennii spisok:');
y:=u;
while y<>nil do begin
writeln(y^.data);
k:=k+1;
if k=1 then a:=y^.data;
if y^.data>a then s:=s+y^.data;
y:=y^.next;
end;
writeln('s=',s);
readln;

volvo
Чего ж не получается? Все нормально считает...
forMator
Ошибся немного... Значит, работает. Это невнимательность. Спасибо большое!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.