在主函数中输入20个整数到一维数组中,用数组做实参调用函数 invertlint*p,int m,int n),对从指定位置m开始的n个数按逆序重新排列,然后在主函数中输出新的数列
首尾交换就行了。但这个m是从0开始的位置,还是从1开始的位置呢?假设是从1开始:
#include <stdio.h>
void invert(int *p,int m,int n)
{
int a = m-1;
int b = n+m-2;
while(a<b)
{
int t = p[a];
p[a] = p[b];
p[b] = t;
a++;
b--;
}
}
int main()
{
int a[20],i,m,n;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
scanf("%d%d",&m,&n);
invert(a,m,n);
for(i=0;i<20;i++)
printf("%d ",a[i]);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!