program test2;
uses crt;
type pt = ^onion;
onion=record
nbr: integer;
suiv:pt;
end;
var
p,h:pt;
ch : string;
procedure add(var p : pt;var h:pt);
begin
if (p=nil) then
begin
p := h;
h^.suiv := nil
end
else
begin
h^.suiv:=p;
p := h;
end
end;
procedure del(var p:pt);
var h: pt;
begin
new(h);
if p <> nil then
begin
h:=p;
p:=p^.suiv;
dispose(h);
end;
end;
begin
new(p);
new(h);
p := nil;
repeat
clrscr;
writeln('entrer un entier');
readln(h^.nbr);
add(p,h);
writeln('entrer un autre ? ');
read(ch);
until ch = 'n';
while p <> nil do
begin
writeln(p^.nbr);
p:=p^.suiv
end;
repeat
del(p);
until p = nil;
end.
lorsque je remplis avec un seul nombre il n'y a aucun problemes mais avec plus il m'ecris infiniement le dernier nombre entré.
merci d'avance
program test2;
uses crt;
type pt = ^onion;
onion=record
nbr: integer;
suiv:pt;
end;
var
p,h:pt;
ch : string;
procedure add(var p : pt;var h:pt);
begin
if (p=nil) then
begin
p := h;
h^.suiv := nil
end
else
begin
h^.suiv:=p;
p := h;
end
end;
procedure del(var p:pt);
var h: pt;
begin
new(h);
if p <> nil then
begin
h:=p;
p:=p^.suiv;
dispose(h);
end;
end;
begin
new(p);
p := nil;
repeat
clrscr;
new(h); writeln('entrer un entier');
readln(h^.nbr);
add(p,h);
writeln('entrer un autre ? ');
read(ch);
until ch = 'n';
while p <> nil do
begin
writeln(p^.nbr);
p:=p^.suiv
end;
repeat
del(p);
until p = nil;
end.