设数组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++;
}
}
}
就是定义两个指针.一个指向零一个指向非零,交换她们的值.遍及整个数组
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-21
强悍的网络当然要有彪悍的万能!

精英的威客当然无视你的困惑!帮你解决一切烦忧!、

万能网试试万能的威力!

O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~
相似回答