#include
int fun(int ,int);
int main()
{
int n,i,p,s,a[100];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
p=fun(a,n);
printf("%d\n",p);
for(i=0;i<p;i++)
printf("%d ",a[i]);
return 0;
}
int fun(int *a,int s)
{
while((a+s-1)==0) s--;
int i,j,t=s;
for(i=0;i<s-1;i++)
if(*(a+i)==0)
{
for(j=i;j<s-1;j++)
(a+j)=(a+j+1);
t--;
i--;
}
*(a+t-1)='\0';
return t;
}
若将
p=fun(a,n);
printf("%d\n",p);
for(i=0;i<p;i++)
原本输入
5
1 1 0 0 1
输出
3
1 1 1
改为
printf("%d\n",fun(a,n));
for(i=0;i<fun(a,n);i++)后
输入
5
1 1 0 0 1
输出
3
1 1 1 1 1
这到底是为什么啊??求大神解释 拜托了