编写用指针变量作为函数参数实现两个数的交换的函数

编写用指针变量作为函数参数实现两个数的交换的函数,主函数输入两个个数都为10的数组A,B,调用所编写的函数交换数组A,B中对应元素的值.

#include<stdio.h>
#define N 10
void exchange(int *pa,int *pb) { int k; k=*pa; *pa=*pb; *pb=k; }
void main()
{ int a[N]={0,1,2,3,4,5,6,7,8,9},b[N]={10,11,12,13,14,15,16,17,18,19},i;
for ( i=0;i<N;i++ ) printf("%2d ",a[i]); printf("\n");
for ( i=0;i<N;i++ ) printf("%2d ",b[i]); printf("\n");
exchange(&a[7],&b[3]);
for ( i=0;i<N;i++ ) printf("%2d ",a[i]); printf("\n");
for ( i=0;i<N;i++ ) printf("%2d ",b[i]); printf("\n");
}追问

没有实现交换的功能。

追答

交换了a的7和b的3,如果是要全部一一对应交换,将exchange(&a[7],&b[3]);改成
for ( i=0;i<N;i++ ) exchange(&a[i],&b[i]);即可

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-29
#include"stdio.h"
void f(int*a,int*b)
{ int t;
t=*b;
*b=*a;
*a=t;
}
main()
{
int A[3,2,1]={1},B[3]={1,2,3},i;
f(A,B);
for(i=0;i<3;i++)
printf("%d",A[i]);
putchar('\n');
for(i=0;i<3;i++)
printf("%d",B[i]);
}追问

有错误。

追答

#include"stdio.h"
void f(int*a,int*b)
{ int t;
t=*b;
*b=*a;
*a=t;
}
main()
{
int A[]={5},B[]={1};
f(A,B);
printf("%d",A[0]);
putchar('\n');
printf("%d",B[0]);
}

相似回答