帮你改了一下,感觉你想复杂了,你不知道你压缩了之后有啥意义!
看一下我改的符合你的要求不!
#include<stdio.h>
#include<stdlib.h>
void main()
{
int *a,b[13]={0,0,0,0,0,0,0,0,0,0,0,0,0},c[13]={65,0,95,0,0,79,82,0,84,94,86,90,0};
int i=0,j=0,k;
a=(int *)malloc(13*sizeof(int));
if(a!=NULL)
{
printf("yes\n");
}
for(i=0;i<13;i++)
{
a[i]=c[i];
}
for(i=0,k=0;i<13;i++)
{
if(a[i]!=0)
{
b[k]=a[i];
k++;
}
else if(a[i]==0)
{
continue;
}
}
for(k=0;k<13;k++)
{
if(b[k]!=0)
{
printf("%3d",b[k]);
j++;
}
}
printf("%\n");
free(a);
a=(int *)malloc(j*sizeof(int));
for(i=0;i<j;i++)
{
*(a+i)=b[i];
}
for(i=0;i<j;i++)
{
printf("%3d",a[i]);
}
free(a);
a=0;
}