主题:[讨论]检验高手的存在:一个初级指针问题
问题1:输入一系列正整数,按升序排列输出(要用链表);
样例输入:5 4 3 2 1
样例输出:1 2 3 4 5
程序:rogram p10_2;
type point=^node;
node=record
data:integer;
next:point;
end;
var head,q,g:point;
x:integer;
begin
head:=nil;
readln(x);new(head);new(q);
head^.data:=x;head^.next:=nil;q:=head;
read(x);
while x>0 do
begin
if q^.data>x then begin
new(g);
g:=q;
q^.data:=x;
q^.next:=g;
q:=g;
q^.next:=nil;
end
else begin
new(g);
g^.data:=x;
q^.next:=g;
q:=g;
q^.next:=nil;
end;
read(x);
end;
q:=head;
while q^.next<>nil do
begin
write(q^.data,' ');
q:=q^.next;
end;
writeln(q^.data);
end.
问题2:不知大家注意到没有,不仅这个程序有问题,思路也与题目要求不同.
问题于是出现了两个--1:上面的程序怎样改正才能完成题目要求?
2:如何解决输入问题(就是仅仅输入n个数,按回车键表示
结束,上面程序是以判断是否输入非正整数判定的)
求览贴的朋友帮帮忙
非灌水贴都有分
样例输入:5 4 3 2 1
样例输出:1 2 3 4 5
程序:rogram p10_2;
type point=^node;
node=record
data:integer;
next:point;
end;
var head,q,g:point;
x:integer;
begin
head:=nil;
readln(x);new(head);new(q);
head^.data:=x;head^.next:=nil;q:=head;
read(x);
while x>0 do
begin
if q^.data>x then begin
new(g);
g:=q;
q^.data:=x;
q^.next:=g;
q:=g;
q^.next:=nil;
end
else begin
new(g);
g^.data:=x;
q^.next:=g;
q:=g;
q^.next:=nil;
end;
read(x);
end;
q:=head;
while q^.next<>nil do
begin
write(q^.data,' ');
q:=q^.next;
end;
writeln(q^.data);
end.
问题2:不知大家注意到没有,不仅这个程序有问题,思路也与题目要求不同.
问题于是出现了两个--1:上面的程序怎样改正才能完成题目要求?
2:如何解决输入问题(就是仅仅输入n个数,按回车键表示
结束,上面程序是以判断是否输入非正整数判定的)
求览贴的朋友帮帮忙
非灌水贴都有分