求如下问题的完整代码。

【问题描述】输入两个各包含5个元素的数组,输入交换位置的开始位置m和结束位置n,输出交换后的两个数组。
【输入形式】输入两个数组和交换数据的开始位置和结束位置
【输出形式】输出交换后的两个数组
【样例输入】3 4 2 1 6 97 12 23 43 1 3 4
【样例输出】3 4 23 43 6 97 12 2 1 1
【样例说明】数据之间用单个空格隔开
【评分标准】要用指针完成对数组的访问,否则记为0分。

定义两个数组,然后再定义两个指针,然后对应序号数值交换就行了

#include <stdio.h>
int main()
{
    int a[5],b[5],*p=a,*q=b,m,n,i,t;
    for(i=0;i<5;i++)
        scanf("%d",p+i);
    for(i=0;i<5;i++)
        scanf("%d",q+i);
    scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
    {
        t = *(p+i-1);
        *(p+i-1) = *(q+i-1);
        *(q+i-1) = t;
    }
    for(i=0;i<5;i++)
        printf("%d ",*(p+i));
    for(i=0;i<5;i++)
        printf("%d ",*(q+i));
    return 0;
}

img

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