题解 | #数组元素处理#
数组元素处理
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) { // write your code here...... int count_0=0;//记录0的个数 for (int i=0;i<n;i++) { if (p[i]==0 & (n-count_0-1>i))//(n-count_0-1>i)说明还有位置需要前移 { ++count_0;//增加一个0的个数 for(int j=i;j<n-count_0;j++)//将从i开始的数字前移 { p[j]=p[j+1]; } p[n-count_0]=0;//同时将对应后面的位置置0 } } }