山东科技大学OJ题库 1176 数组去重

1176 数组去重

Description

现有一个非减序(即前面的元素值不会比后面元素的数值大)排列的一维数组,其中有若干元素是重复的。编程将重复元素删除掉若干个,仅保留1个,使数组中没有重复元素。

Input

输入有多行。第一行M>0,表示之后有M行输入。

之后的M行输入是若干个一维数组。每行的第一个数据0

Output

输出有M行,每行输出与上述M组输入一一对应,是其输入数组去重后的结果。输出的数据需按照递增序排列,且每两个数组元素之间用一个空格隔开。

Sample Input
2
10 0 0 0 0 0 1 3 3 4 4
10 1 2 3 4 5 6 7 8 9 10

Sample Output
0 1 3 4
1 2 3 4 5 6 7 8 9 10

#include
int main()
{
    int M,N,i,j,a;
    scanf("%d\n",&M);
    for(i=0;i<M;i++)
    {
        scanf("%d",&N);
        int b[N];
        for(j=0;j<N;j++)
        {
            scanf("%d",&a);
            b[j]=a;
        }
        int c[100000],k=1;
        for(j=0;j<100000;j++)
        {
            c[j]=0;
        }
        c[0]=b[0];
        for(j=1;j<N;j++)
        {
            if(b[j]==b[j-1])
            {
                continue;
            }
            if(b[j]>b[j-1])
            {
                c[k]=b[j];
                k++;
            }
        }
        printf("%d",c[0]);
        for(j=1;j<k;j++)
        {
            printf(" %d",c[j]);
        }
        printf("\n");
    }
    return 0;
}

你可能感兴趣的:(OJ题库,c语言)