讨论 / 求大虾帮忙··
renqiangii 2011-04-23 08:24:00
点我顶贴 收藏 删除
#include<stdlib.h>

main()

{

int n,i,g,temp,check=1,h,k;

int *a;

scanf("&d",&n);

a=(int*)malloc(n*sizeof(int));

for(i=0;i<n;i++)

{

scanf("%d",&temp);

for(g=0;g<i;g++)

{

if(temp==a[g])

{

--i;

--n;

check=0;

break;

}

}

if(check)

{a[i]=temp;

check=1;

for(h=i-1;h>=0;h--)

{

if(a[h]<a[i])

{

for(k=i;k>h+1;k--)

{

a[k]=a[k-1];

a[h+1]=temp;

}

}

}

}

}

printf("%d\n",n);

for(i=0;i<n;i++)printf("%d ",a[i]);

system("pause");

free(a);

}

哪儿错了??怎么只有2个输出??

查看更多回复
提交回复