上海华为的一道关于指针方面的编程题
int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至
数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)
int Func(int* A, int nSize)
{
for(int i=nSize;i>=0;i--)
{
if(*(A+i-1)==0)
{
for(int n=i;n<nSize;n++)
{
int temp=-1;
temp=A[n-1];
A[n-1]=A[n];
A[n]=temp;
}
}
}
return 0;
}
void main()
{
int A[]={1,2,0,3,0,5,6,0,7};
Func(A,9);
for(int i=0;i<9;i++)
{
printf("%d\n",A[i]);
}
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载