int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)#include <iostream>using namespace std;int a[9]={0,2,0,1,0,5,6,8,0};int fun(int arr[],int length){int i,j;for(i = 0,j = i+1;i<length;){if(arr[i] == 0){if(arr[j] ==0){j++;if(j == length){break;}}else{arr[i] = arr[j];arr[j] = 0;}}else{i++;}}return i;}void show(){for(int i=0;i<sizeof(a)/sizeof(int);i++){cout<<a[i]<<" ";}}int main(){cout<<fun(a,sizeof(a)/sizeof(int))<<endl;show();return 0;}
一道面试题
最新推荐文章于 2021-12-04 11:34:20 发布
966

被折叠的 条评论
为什么被折叠?



