c++ 数组中删除重复元素 求解
intfun(int*a,intn)//数组名和数组长度{inti,j,k;for(i=k=1;i<n;i++){for(j=0;j<k;j++){if(a[j]==a[...
int fun(int *a,int n) //数组名 和 数组长度
{
int i,j,k;
for(i=k=1;i<n;i++)
{
for(j=0;j<k;j++)
{
if(a[j]==a[i])
break;
}
if(j==k)
{ a[k]=a[i];
k++;
}
}
return k; //返回新数组的长度
}
我需要的就是此类型的程序 但是不理解 谢谢!!! 展开
{
int i,j,k;
for(i=k=1;i<n;i++)
{
for(j=0;j<k;j++)
{
if(a[j]==a[i])
break;
}
if(j==k)
{ a[k]=a[i];
k++;
}
}
return k; //返回新数组的长度
}
我需要的就是此类型的程序 但是不理解 谢谢!!! 展开
2个回答
展开全部
int fun(int *a,int n) //数组名 和 数组长度
{
int i,j,k;
for(i=k=1;i<n;i++)
{
for(j=0;j<k;j++)
{
if(a[j]==a[i]) //查找a中与a[i]相等的最左边数的坐标,即j
break;
}
if(j==k) //如果j==k即是说第k个元素之前没有和a[i]相等的,即a[i]是新元素
{
a[k]=a[i]; //把a[i]添加到无重复的最后边,a[k]位置
k++; //实际无重复数组长度+1
}
}
return k; //返回新数组的长度
}
k的意思是前k个元素是不重复的,当发现a[i]与前k个元素都不同,则插入到k的位置,k+1
{
int i,j,k;
for(i=k=1;i<n;i++)
{
for(j=0;j<k;j++)
{
if(a[j]==a[i]) //查找a中与a[i]相等的最左边数的坐标,即j
break;
}
if(j==k) //如果j==k即是说第k个元素之前没有和a[i]相等的,即a[i]是新元素
{
a[k]=a[i]; //把a[i]添加到无重复的最后边,a[k]位置
k++; //实际无重复数组长度+1
}
}
return k; //返回新数组的长度
}
k的意思是前k个元素是不重复的,当发现a[i]与前k个元素都不同,则插入到k的位置,k+1
追问
恍惚之间懂了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询