●删除数组中重复的元素 (1)
int removedulplicate(int *str,int n)
{
int i=0;
int j=0;
int length=1;
for(i=0;i<n;i++)
{
//比较第二个数与第一个数,若不等,则放到数组中
若相等,则比较第三个数与第一个数,以此类推
if(str[i]!=str[length-1])
{
str[length++]=str[i];
}
}
return length;
}
int main()
{
int arr[]={
1,2,2,3,3,4,5,6,7,8};
int n=sizeof(arr)/sizeof(arr[0]);
int length=0;
length=removedulplicate(arr,n);
int i=0;
for(i=0;i<length;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
///
///
●删除数组中重复的元素 (2)
通过下标来操作
int removesame(int *arr,int length)
{
int p=0; //前下标
int q=1; //后下标
while(q<length)
{
//前后两个元素是否相等,若相等则后下标加一,
反之将后下标元素放到数组中
if(arr[p]==arr[q])
{
q++;
}
else
{
arr[++p]=arr[q];
q++;
}
}
return p+1;
}
int main()
{
int arr[]={
1,2,2,3,3,4,5,6};
int len=sizeof(arr)/sizeof(arr[0]);
int n=0;
n=removesame(arr,len);
int i=0;
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
配列内の重複要素を削除します(2つの方法)
おすすめ
転載: blog.csdn.net/cfk17829572643/article/details/109684100
おすすめ
ランキング