编写一个console程序
随机生成10个不重复数字,并将它们由小到大输出
并显示比较次数
请大家帮忙!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       i,j: integer;
       a : array[0..9] of Integer;
       t : integer;
    begin
       Randomize;
       for i:= 0 to 9 do
       begin
         a[i] := random(J);
       end;     for i:= 0 to Length(a) -1 do
       Memo1.Lines.Append(inttostr(a[i]));   // sort;
       //冒泡法:
       for i:= 0 to length(a)-1 do
       begin     for J:= i+1 to Length(a)  do
         begin
              t := a[i];
           if a[i] > a[j] then
           begin
             a[i] := a[J];
             a[j] := t;
           end;
         end;
       end;
       for i:= 0 to Length(a) -1 do
       Memo2.Lines.Append(inttostr(a[i]));
    end;
      

  2.   

    #include <stdio.h> 
    void   main() 

    int grade[10],temp,j; 
    static long holdrand = 1L;
    for(int i=0;i<10;i++)
    grade[i]=holdrand = ((holdrand * 214013L + 2531011L) >> 16) & 0x7fff;
    //出随机数
    for(i=0;i<10;i++)
    printf("%d ",grade[i]);for(i=0;i<10;i++) 

    for(j=0;j<10-1-i;j++) 

    if(grade[j]<grade[j+1]) 

    temp=grade[j+1]; 
    grade[j+1]=grade[j]; 
    grade[j]=temp; 



    printf("最后排序为:\n"); 
    for(i=0;i<10;i++) 

    printf("%d ",grade[i]); 

    printf("\n"); 
    }用C给你写一个吧~1