数组元素处理_牛客题霸_牛客网 (nowcoder.com)
新建一个数组arr,与原有数组大小一致
先将不为0的元素放到arr中,其他的都赋值为0
这样即可
#include <iostream>
using namespace std;
void func(int* p, int n) {
int i = 0, j = 0;
int arr[n];
while (i < n) {
if (p[i] != 0) {
arr[j] = p[i];
++j;
}
++i;
}
while (j < n) {//空余下来的都要赋值为0
arr[j] = 0;
++j;
}
for (int i = 0; i < n; ++i) {
//因为函数中的变量是局部变量
//所以再通过指针获得刚刚得到的数组元素
p[i] = arr[i];
}
}
int main() {
const int n = 6;
int a[n];
for ( int i = 0; i < n; ++i) {
cin >> a[i];
}
func(a, n);
for ( int i = 0; i < n; ++i) {
cout << a[i] << " ";
}
}
// 64 位输出请用 printf("%lld")