Help!!帮我做下这道题吧!!
编写函数test2实现两个整数集合x,y的减运算(即从x中删除和y中相同的元素) int test2(int *x,int *y,int m,int n)
// 功能:从pAddr中删除和nKey中相同的元素
// 参数:nCount为pAddr数组元素个数
// 返回值: pAddr 后来元素个数
int remove(int *pAddr, int nKey, int nCount)
{
if (pAddr == 0 || nCount <= 0) {
return 0;
}
int i = 0;
while (i < nCount) {
if (pAddr[i] == nKey) {
if (nCount - i > 1) { // 也就是保证nCount - i -1 》 0
memcpy(&pAddr[i], &pAddr[i+1], nCount - i -1);
}
nCount--;
}
else {
i++;
}
}
return nCount;
}
// 功能:从x中删除和y中相同的元素
// 参数:m为x数组的元素个数,n 为y数组元素个数
// 返回值: x后来元素个数
int test2(int *x,int *y,int m,int n)
{
for (int i = 0; i < n; i++) {
m = remove(x, y[i], m);
}
return m;
}
[ 本帖最后由 yuccn 于 2012-5-20 18:24 编辑 ]