Привет всем!! Дан динамический список. Нужно найти сумму пяти первых элементов. Подскажите почему сумма считается неправильно!!??
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.
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);
А как в динамическом списке подсчитать сумму элементов больших 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;