作业帮 > 综合 > 作业

设数组R中n(n>1)个元素中有多个零元素,试设计一个算法将R中的所有非零元素依次移动到R数组的前端

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 02:22:03
设数组R中n(n>1)个元素中有多个零元素,试设计一个算法将R中的所有非零元素依次移动到R数组的前端
void SortZero(int r[],int n)
{
int *p,*q,*end;
int temp;
p = r;
q = r;
end = r + n;
while((p < end)&&(q < end))
{
if((*p != 0)&&(*q == 0))
{
temp = *q;
*q = *p;
*p = temp;
}
if(*p == 0)
{
p++;
}
if(*q != 0)
{
q++;
}
}
}
就是定义两个指针.一个指向零一个指向非零,交换她们的值.遍及整个数组