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个输出??