📄 liste1.pas
字号:
type pnod=^nod;
nod=record
inf:integer;
leg:pnod;
end;
var prim:pnod;
n:integer;
m:real;
procedure creare(var p:pnod);
var nou,ultim:pnod; i:integer;
begin
randomize;
for i:=1 to n do
if p=nil then begin
new(p);
p^.inf:=random(91)+10;
p^.leg:=nil;
ultim:=p;
end
else begin
new(nou);
nou^.inf:=random(91)+10;
nou^.leg:=nil;
ultim^.leg:= nou;
ultim:=nou;
end;
end;
function prima(x:integer):integer;
var p:integer;
begin
while x<>0 do begin
p:=x mod 10;
x:=x div 10;
end;
prima :=p;
end;
procedure inserare(p:pnod);
var nou:pnod;
begin
while p<>nil do
if p^.inf mod 5=0 then begin
new(nou);
nou^.inf:=prima(p^.inf);
nou^.leg:=p^.leg;
p^.leg:=nou;
p:=p^.leg^.leg;
end
else p:=p^.leg;
end;
procedure eliminare(var p:pnod);
var q,t:pnod;i,s:integer;
begin
while (p<>nil) and (p^.inf mod 10=0) do
begin
q:=p;
p:=p^.leg;
dispose(q);
end;
if p<>nil then begin
q:=p;
while q^.leg <>nil do
if q^.leg^.inf mod 10 =0 then begin
t:=q^.leg;
q^.leg:=t^.leg;
dispose(t);
end
else q:=q^.leg;
end;
q:=p;
i:=0;
while q<>nil do
begin
inc(i);
q:=q^.leg;
end;
s:=0;
q:=p;
while q^.leg<>nil do begin
s:=s+q^.inf;
q:=q^.leg;
end;
s:=s+q^.inf;
m:=(s/i);
end;
procedure afisare(p: pnod);
begin
if prim=nil then write('lista vida')
else while p<>nil do begin
write(p^.inf,' ');
p:=p^.leg;
end;
writeln;
end;
begin
write('n=');readln(n);
prim:=nil;
creare(prim);
afisare(prim);
inserare(prim);
afisare(prim);
eliminare(prim);
afisare (prim);
write('media ',m:2:2);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -