(3),对20个输入的整数,从小到大输出,相同的数只输出一个,不重复输出.

 我来答
听不清啊
高粉答主

2013-04-05 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

var a:array[1..20]of integer;

    n,i,j,t:integer;

begin

  writeln('Before sort:');

  for i:=1 to 20 do

  begin a[i]:=random(20); write(a[i],' ') end;

  writeln; writeln('After sort:');

  for i:=1 to 19 do

    for j:=1 to 20-i do

      if a[j]>a[j+1] then

      begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;

  i:=1;

  repeat

    write(a[i],' ');

    i:=i+1;

    while a[i]=a[i-1] do i:=i+1;

  until i>20;

  writeln;

end.

追问

请问我写成这样,就是相同的数还是要输出,我该怎么改,才能不输出相同的数

追答
把最后输出的循环修改一下:
i=0;
while(i<n-1)
{
printf("%d ",array[i++]);
while(array[i]==array[i-1])
i++;
}
printf("\n");
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式