|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有一个数组int A[nSize],要求写-一个函数:
int * myfunc (int *p, int nSize);
将A中的0都移至数组末尾,将非0的移至开始(保持原来的顺序不变)。
例如:
A原来是: 1,0,3, 4, 0,-3, 5
经过myfunc处理后为: 1,3, 4,-3,5, 0,0
根据前排大佬的想法,小萌新试着写了一个,有问题的地方请帮忙指正 
- #include<stdio.h>
- int *myfunc(int *p,int nsize)
- {
- int i=0,j=0;
- int count=0;
- int temp[100];
- for(i=0;i<nsize;i++)
- {
- if(*(p+i)!=0)
- {
- temp[j]=*(p+i);
- j++;
- }
- else
- {
- count++;
- }
- }
- for(i=0;i<nsize-count;i++)
- {
- *(p+i)=temp[i];
- }
- for(i=nsize-count;i<nsize;i++)
- {
- *(p+i)=0;
- }
- return p;
- }
- int main()
- {
- int A[7]={1,0,3,4,0,-3,5};
- int nsize=7;
- int i;
- myfunc(A,7);
- for(i=0;i<nsize;i++)
- {
- printf("%d ",A[i]);
- }
- putchar('\n');
- return 0;
- }
复制代码
|
|