C语言:用指针编程:有一个数列,含有20个整数,编写函数,要求能够对从指定位置开始的n个数按相反顺序重

2025-04-27 11:16:18
推荐回答(1个)
回答1:

#include
void main()
{
int *fun(int *,int,int);
int a[20],*p;
int m,n;
int i;
printf("输入数列:");
for(i=0;i<20;i++)
scanf("%d",&a[i]);
printf("输入起始位置和需要逆序的数量:");
scanf("%d %d",&m,&n);
p=a;
printf("原数列为:\n");
for(i=0;i<20;i++)
printf("%d ",*(p+i));
fun(p,m,n);
printf("\n变换后的数列为:\n");
for(i=0;i<20;i++)
printf("%d ",*(p+i));
}
int *fun(int *p,int m,int n)
{
int i,j,k;
for(i=m-1,j=m+n-2;j>i;i++,j--)
{
k=*(p+i) ;
*(p+i) = *(p+j);
*(p+j) =k;
}
return p;
}