请问第四题我这么写哪有问题

#include<stdio.h>
#define t 10
void fun(int *p,int n);
int main()
{ int a[t],i;
for(i=0;i<t;i++)
{ scanf("%d",&a[i]);
}
fun(a,3);
for(i=0;i<t;i++)
printf("%d\n",a[i]);
return 0;
}
void fun(int *p,int n)
{ int b[100],i,k=0;
for(i=0;i<n;i++)
b[i]=p[i];

do
{    p[i-n]=p[i];    
}
while(p[++i]);

for(i=0;i<n;i++)
{    p[k++]=b[i];
}

}

do
{ p[i-n]=p[i];
}
while(p[++i]);
for(i=0;i<n;i++)
{ p[k++]=b[i];
}
这两个循环相当诡异,p[++i]根本不确定什么时候会结束啊

do
{ p[i-n]=p[i];
}
while(p[++i]); //这里死循环了,i会一直加下去

你要实现什么功能?

请问第四题的题目要求是什么,发出来看看。