SDUT 1130
#include<stdio.h>
struct fly
{
int al;
int vis;
}st[5000];
int main()
{
int n,i,j,w;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&st[i].al);
st[i].vis=0;
}
int s=0;
for(i=0;i<n;i++)
{
if(st[i].vis==1)
continue;
s++;
w=st[i].al;
for(j=i+1;j<n;j++)
{
if(st[j].al==w)
{
st[j].vis=1;
}
}
}
printf("%d\n",s);
printf("%d",st[0].al);
for(i=1;i<n;i++)
{
if(!st[i].vis)
printf("% d",st[i].al);
}
printf("\n");
return 0;
}
或者
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,j,k;
int a[1010],b[1010],c[1010];
while(scanf("%d",&n)!=EOF)
{
k=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
if(a[i]==a[j])
b[j]=1;
}
for(i=0;i<n;i++)
{
if(b[i]!=1)
c[k++]=a[i];
}
printf("%d\n",k);
printf("%d",c[0]);
for(j=1;j<k;j++)
printf(" %d",c[j]);
printf("\n");
}
return 0;
}