游客 Signup | Login
中文 | En

3083 - 【设计型】第9章: 指针 9.10 将"0"到尾

 

有一个数组int A[nSize],要求写一个函数:

int myfunc(int *p,int nSize);

nSize最多不超过100,将A中的0移动到数组末尾,将非0的移至开始(保持原来的顺序不变)

例如:

A原来是:10340-35

经过myfunc处理后为:134-3500

Input

输入两行数据第一行为即将要输入的整数个数,第二行为要输入的整数(整数之间用空格隔开)。

Output

输出为一行整数,整数之间用空格隔开。

Examples

Input

11
1 0 20 0 -7 0 2 0 2 6 4

Output

1 20 -7 2 2 6 4 0 0 0 0

Solution C

#include<stdio.h>
int myfunc(int *p,int nSize);
int main()
{
	int A[100],nSize,i,j,k;
	scanf("%d",&nSize);
	for(i=0;i<nSize;i++)
	{
		scanf("%d",&A[i]);
	}
	myfunc(A,nSize);
	for(i=0;i<nSize;i++)
	{
		printf("%d",A[i]);
		if(i!=nSize-1)	printf(" ");
	}
}

int myfunc(int *p,int nSize)
{
	int a[100]={0},i,j=0;
	for(i=0;i<nSize;i++)
	{
		if(*(p+i))	a[j++]=*(p+i);
	}
	for(j = 0; j < nSize; j++)
       *(p+j) = a[j];
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题