回 帖 发 新 帖 刷新版面

主题:关于一个插入法的一个问题

program charufa (input,output);
var
   n,i,j:integer;
   k:real;
   a:array[1..100] of real;
begin
   writeln('input n:');
   read(n);
   writeln ('input a[n]:');
   for i:=1 to n do
   read(a[i]);
   for i:=2 to n do
   begin
   k:=a[i];
   j:=i-1;
   while a[j]>k do
   begin
   a[j+1]:=a[j];
   j:=j-1
   end;
   a[j+1]:=k
   end;
   for i:=1 to n do
   writeln(a[i]:8:3)
end.

把其中的while语句更换成for+if语句,请问怎么改?请大家帮帮忙啊。。。。

回复列表 (共3个回复)

沙发

谁能告诉我啊?。。。。

板凳

改写方法有很多.现给出最简单的一种.开始的输入和输出我就不写出来了.
for i:=2 to n do
  for j:=1 to i-1 do
    if a[j] > a[i]
      then begin
             k:=a[j];
             a[j]:=a[i];
             a[i]:=k
           end;

3 楼

谢谢哈~~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册