问答题
设数组R[0…n-1]的n个元素中有多个0元素,设计一个算法,将R中所有的非0元素依次移动到R数组的前端。
【正确答案】
用i指向不为0元素应放的下标,j遍历R,当R[j]不为0时,在i与j不相同时将R[i]与R[j]交换。 void move(int R[],int n) { int i=-1,j,temp; for(j=0;j<n;++j) if(R[j]!=0) //R[j]为第i个不为0的元素 { ++i; if(i!=j) //R[j]不在位置i上,则R[i]与R[j]交换 { temp=R[i]; R[i]=R[j]; R[j]=temp; } } }
【答案解析】
提交答案
关闭