一道c语言指针程序题求解答

#include <stdio.h>
main()
{
int * tiaozheng(int *p,int n,int m);
int i,a[10],*p,*p1;
printf("请输入10个数");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
p=a;
p1=tiaozheng(p,10,3);
for(i=0;i<10;i++)
printf("%d",*(p1+i));
}
int * tiaozheng(int *p,int n,int m)
{
int i,*p1;
p1=p;
for(i=0;i<n;i++,p1++)
{
if(i<n-m)
{
p1=p+3;
p++;

}
else if(i>=n-m)
{
p=p-i;
p1=p;
p++;

}

}
return(p1);
}
求解答哪里错了,我用的是地址的方法,不能这样用吗,运行结果是
请输入10个数10 9 8 7 6 5 4 3 2 1
-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993460Press any key to continue

int * tiaozheng(int *p,int n,int m) 
{
int i,*p1,*q=p;
p1=p;
for (i=0;i<n;i++,p1++) 
{
if(i<n-m) 
{
p1=p+3;
p++;
} else if(i>=n-m) 
{
p=p-i;
p1=p;
p++;
}
}
return(q);
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网