题解 | #数组元素处理#
数组元素处理
https://www.nowcoder.com/practice/bb840c11be674d01b582847a6921d384
#include <iostream> using namespace std; void func(int* p, int n); int main() { int arr[6] = { 0 }; for (int i = 0; i < 6; i++) { cin >> arr[i]; } func(arr, 6); for (int i = 0; i < 6; i++) { if (i == 5) { cout << arr[i] << endl; } else { cout << arr[i] << " "; } } return 0; } // void func(int* p, int n) {//指针指向一个数组 n表示数组的长度 // // write your code here...... // for(int i=0;i<n;i++)//循环遍历数组 // { // if(p[i]==0)//检查数组中索引为 i 的元素是否为零 // { // for(int j=i;j<n-1;j++)//将零元素移至末尾 // { // p[j]=p[j+1];//将元素右移一位 // //此时并没有更改最后一位 // } // p[n-1]=0;//将数组中最后一个元素设置为零 // n--;//更新长度 // } // } // } //双指针的方法 void func(int* p, int n) {//指针指向一个数组 n表示数组的长度 // id指向第一个0所在的位置 int id=0; //i指向游标所在位置 遍历所有元素 for (int i = 0; i < n; i++) { if(p[i]!=0){//检查数组中索引为 i 的元素是否不为零 int temp=p[i]; p[i]=p[id];//数组中非零元素 p[i] 与应该放置的位置 p[id] 进行交换 p[id++]=temp;//id++后置递增 先计算表达式,后对变量进行++ //id++;//对 id 指针的后移操作,将 id 加 1。 } } }#我的实习求职记录#