删除相同的数c语言程序输出

编写程序,删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
输入
输入数组中元素个数,占一行;输入一组数据,占一行。
输出
输出删除相同数以后的数组,输出占一行
难度
中等
输入示例
19
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
输出示例
2 3 4 5 6 7 8 9 10

供参考:

#include <stdio.h>
#define N 100
int main()
{
    int   i, j, n = 19, a[N] = { 2,2,2,3,4,4,5,6,6,6,7,7,8,9,9,10,10,10,10 }, flg;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);

    for (flg = a[0], i = 0, j = 0; i < n; i++)
    {
        if (a[i] - flg)
            a[j++] = a[i];
        if (i == 0)
            a[j++] = a[i];
        flg = a[j - 1];
    }

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

设置一个apr数组,判断每个数是否出现过,然后一边读入数据,一边把没出现过存入数组A,最后输出数组A即可


#include <stdio.h>
#define    N    80
int  fun(int  a[], int  n)
{
    int i=0,j=0;
    while(i<n)
    {
        while(a[i+1]==a[i])
        {
            i++;
        }
        a[j++]=a[i];
        i++;
    }
    return j;
}
main()
{  int  a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;void NONO ();
   printf("The original data :\n");
   for(i=0; i<n; i++)printf("%3d",a[i]);
   n=fun(a,n);
   printf("\n\nThe data after deleted :\n");
   for(i=0;i<n;i++)printf("%3d",a[i]); printf("\n\n");
}