描述
编写程序,删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 |
输入
输入数组中元素个数,占一行;输入一组数据,占一行。 |
输出
输出删除相同数以后的数组,输出占一行 |
难度
中等 |
输入示例
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>
#include<stdlib.h>
int main(void)
{
int n;
scanf_s("%d\n", &n);
int* a = (int*)malloc(sizeof(int) * n);
int* b = (int*)malloc(sizeof(int) * n);
for (int i = 0; i < n; i++)
{
scanf_s("%d", &a[i]);
if (a[i] == a[i - 1])
b[i] = 1;
else b[i] = 0;
}
for (int i = 0; i < n; i++)
{
if (b[i] == 0)
printf("%d ", a[i]);
}
free(a);
free(b);
return 0;
}