关于数组 如何删除重复数
#include <stdio.h>int* remove_repetitions(int* A,int n)
{
int i,j,k,del;
for(i=0;i<n;i++)
{
del=A;
for(j=i+1;j<n;j++)
if(A==del)
{
for(k=j+1;k<n;k++)
{
A=A;
}
n--;
j--;
}
}
return n;
}
void main()
{
int A={3,3,4,5,6,7,8,99,99,10};
int i;
remove_repetitions(A, 10);
for (i=0;i<10;i++)
{
printf("%d ",A);
}
}
结果:3 4 5 6 7 8 99 10 10 10
为什么还会在最后有三个10呀,不是改变了长度吗? {:5_108:} #include <stdio.h>
#define N 10
int remove_repetitions(int arr[], int n)
{
int i, j, k, del;
for(i = 0; i < n-1; i++)
{
del = arr;
for(j = i+1; j < n; j++)
{
if(arr == del)
{
for(k = j+1; k < n; k++) //用 swap 放到最后一个会比较好
arr = arr;
n--;
j--;
}
}
}
return n;
}
int main()
{
int A = {3, 3, 4, 5, 6, 7, 8, 99, 99, 10};
int i;
int L = remove_repetitions(A, N); //要赋值
for(i = 0; i < L; i++) //长度要更新
{
printf("%d ", A);
}
return 0;
} claws0n 发表于 2018-10-16 13:18
好哒,谢谢啦 天天都饱饱 发表于 2018-10-16 13:38
好哒,谢谢啦
函数的返回类型也是,整型,不是指针
然后记得采纳最佳答案{:10_254:}
页:
[1]