1.(任意数组去重)找到数组(假设都大于0)的首元素,然后往后看有无与其相同的数,如有相同的让其等于-1(也可以是其它数,最好不要为0,万一数组元素中本身就为0),然后找第二个数,看其后面的数(第三个数)是否有相同的数,...........,直到遍历完整个数组
eg1:
int main()
{
int n = 0;
scanf("%d", &n);
int arr[100] = { 0 };
int i = 0;
//输入元素
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int j = 0;
//实现去重
for (i = 0; i < n; i++)
{
for (j = 1 + i; j < n; j++)
{
if (arr[j] == arr[i])
{
arr[j] = -1;
}
}
}
//打印去重后中数组中的元素
for (i = 0; i < n; i++)
{
if(arr[i] != -1)
printf("%d ", arr[i]);
}
return 0;
}
2.(有条件数组)在一个n个元素的数组中,且数组中的每个数(k)的范围为1<=k<=n;
对该数组去重的方法为直接用arr[k] = k;
eg:
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
int arr[100000] = { 0 };
int sum = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &sum);
arr[sum] = sum; //去重
}
//打印
for (i = 0; i < n; i++)
{
if (arr[i] != 0)
printf("%d ", arr[i]);
}
return 0;
}