IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Динамический список, Подсчитать сумму первых пяти элементов
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Привет всем!! Дан динамический список. Нужно найти сумму пяти первых элементов. Подскажите почему сумма считается неправильно!!??

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.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
сообщение
Сообщение #2


Гость






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);

 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


А как в динамическом списке подсчитать сумму элементов больших 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;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Чего ж не получается? Все нормально считает...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Ошибся немного... Значит, работает. Это невнимательность. Спасибо большое!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 7:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name