#include <stdlib.h>
#include <time.h>
#define M 100
int main(void)
{
void print(int *,int);
void sort(int *,int);
int deleteSame(int *,int);
int num=0;
int i=0,j=0;
int array[M]={0};
scanf("%d",&num);
// srand((unsigned)time(NULL));//产生随机数
for(i=0;i<num;i++)
{
scanf("%d",array+i);
// array[i] = rand()%100+1;
}
sort(array,num);
num = deleteSame(array,num);
printf("%d\n",num);
print(array,num);
return 0;
}
//输出函数
void print(int *num,int length)
{
int i=0;
for(i=0;i<length;i++)
{
if(i==length-1)
{
printf("%d",num[i]);
}
else
{
printf("%d ",num[i]);
}
}
printf("\n");
}
//排序函数(冒泡)
void sort(int *num,int length)
{
int i=0,j=0;
int tmp=0;
for(i=0;i<length-1;i++)
{
for(j=0;j<length-1-i;j++)
{
if(num[j]>num[j+1])
{
tmp = num[j];
num[j] = num[j+1];
num[j+1] = tmp;
}
}
}
}
//去重函数
int deleteSame(int *num,int length)
{
void move(int *,int,int);
int i=0;
int tmpNow=0,tmpPre=0; //tmpPre记录前一位,tmpNow记录当前位
for(i=0;i<length;i++)
{
tmpNow = num[i];
if(tmpNow==tmpPre) //如果当前位和前一位相等,则存在重合,进行移位(去掉当前位)
{
move(num,i,length);
length--;
}
tmpPre = num[i];
}
return length;
}
//移位函数(去重时使用)
void move(int *num,int x,int length)
{
int i=0;
for(i = x;i<length-1;i++)
{
num[i] = num[i+1];
}
}