在主函数中输入20个整数到一维数组中

在主函数中输入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;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632