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

用指针编程:有一个数列,含有20个整数,编写函数,要求能够对从指定位置开始的n个数按相反顺序重新排列,并在main中输出新的数列。
例如,原数列为:
1,2,3,4,5,6,7,8,9,10
若要求对从3个数开始的5个数进行逆序处理,则处理后的新数列为:
1,2,7,6,5,4,3,8,9,10

#include<stdio.h>
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;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答