C语言:用指针方法,交换数组A和数组B的对应元素。

如题所述

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"

void main(void)
{
int a[10],b[10];
int i=0;
int temp = 0;
int *pa,*pb;

for(i=0;i<10;i++)
{
a[i] = i;
b[i] = i+10;
}

pa = a;
pb = b;

for(i=0;i<10;i++)
{
temp = *pa;
*pa = *pb;
*pb = temp;
pa++;
pb++;
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0;i<10;i++)
{
printf("%d ",b[i]);
}
}

你参考一下
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-12-31
已上机调试了,放心用吧,希望你能学会啊!!
#include<stdio.h>
void main()
{int *p,*q;
int i,temp;
int a[10],b[10];
printf("Please input first arrays\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("Please input second arrays\n");
for(i=0;i<10;i++)
scanf("%d",&b[i]);
p=a;
q=b;
for(i=0;i<10;i++){
temp=*p;
*p=*q;
*q=temp;
p++;
q++;
}
printf("Output two arrays\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<10;i++)
printf("%d ",b[i]);
}
第2个回答  2007-12-31
#include <stdio.h>
void swaq(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
void change(int *pstr,int *pstr2,int num)
{
printf("the value in a is %d\t",*(pstr+num-1));
printf("the value in b is %d\n",*(pstr2+num-1));
swaq(pstr,pstr2);
printf("the value in a is %d\t",*(pstr-1));
printf("the value in b is %d\n",*(pstr2-1));
}

void main()
{
int a[3]={1,2,3};
int b[3]={4,5,6};
int number;
printf("the value with array is a[3]={1,2,3}\nb[3]={4,5,6}\nwitch value you want to change:\t");
scanf("%d",&number);
change(a,b,number);
}

参考以下!呵呵!
我写完已经有这么多了 !
所以顺便写成函数方式!呵呵!加油!
第3个回答  2007-12-31
int a[10],b[10];
int *p,*q,*temp;
p=&a[0],q=&b[10];
temp=p,p=q,q=temp;
//*p,*q 此时所指的数组已经变化