解题思路:
构建新的数组a[j] 每次统计0的个数,最后返回总数减去0的个数就是新元素
注意事项:
参考代码:
#include<iostream> using namespace std; const int N=1000; int CompactIntegers(int a[],int n){ int i,j,k=0; for(i=0,j=0;i<n;i++){ if(a[i]!=0){ a[j]=a[i]; //新构建的数组 j++; //下标向后移 } else k++; //统计0的个数 } return n-k; } int main(){ int x; cin>>x; int array[1000]; for(int i=0;i<x;i++){ cin>>array[i]; } int num=CompactIntegers(array,x); for(int i=0;i<num;i++){ cout<<array[i]<<" "; } cout<<"\n"<<num; return 0; }
0.0分
1 人评分