C语言 指针实现以下功能,交换数组a和数组b中的对应元素,要考虑到数组a和数组b中数据元素的个数不同。

#include<stdio.h>

#define N 20

int main()

{

    int a[N]={0},b[N]={0},temp,anum,bnum;

    int *pi,*pj;

    scanf("%d",&anum);         //输入数组a元素个数

    for(pi=a;pi<a+anum;pi++) scanf("%d",pi);

    scanf("%d",&bnum);        //输入数组b元素个数

    for(pj=b;pj<b+bnum;pj++) scanf("%d",pj);

    

    for(pi=a,pj=b;pi<a+anum&&pj<b+bnum;pi++,pj++)   //交换数组元素

        {
    
        temp=*pi;

        *pi=*pj;

        *pj=temp;

        }

    while(pi<a+anum)

    {

        *pj=*pi;

        pi++;pj++;

    }

     while(pj<b+bnum)

    {

        *pi=*pj;

        pi++;pj++;

    }

    temp=anum;

    anum=bnum; 

    bnum=temp;

    for(pi=a;pi<a+anum;pi++) 

        printf("%d ",*pi);

    printf("\n");

    for(pj=b;pj<b+bnum;pj++)

         printf("%d ",*pj);

    return 0;

}


测试输入: 10 91 1 42 32 9 57 6 33 2 88 3

       52 37 19

输入说明: 第一行为n,表示输入数组an个整数。 第二行为数组an个整数。 第三行为m,表示输入数组bm个整数。 第四行为数组bm个整数。

预期输出: 52 37 19

       91 1 42 32 9 57 6 33 2 88

输出说明: 第一行为数组a的所有元素。 第二行为数组b的所有元素。


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值