定义两个长度相同的整型数组,通过键盘输入给这两个数组赋值。编写程序交换这两个数组对应位置的数值,如数组a[] ={1,2,3,4,5},数组b[] = {6,7,8,9,10},交换后,数组b[] ={1,2,3,4,5},数组a[] = {6,7,8,9,10},输出交换前后数组a、b的值。
#include <stdio.h>
void swap(int *x,int *y)
{
int tmp=*x;
*x=*y;
*y=tmp;
}
void swap_array(int *a,int *b,int n)
{
int i;
for(i=0;i<n;++i)
swap(a+i,b+i);
}
int main()
{
int n,i;
printf("请输入数组长度");
scanf("%d", &n);
int *a = (int*)malloc(n*sizeof(int));
if (a== NULL);
{
free(a) ;
a= NULL ;
return 1;
}
int *b = (int*)malloc(n*sizeof(int));
if (b== NULL);
{
free(b) ;
b= NULL ;
return 1;
}
printf("请为第一个数组赋值");
for ( i = 0; i < n; ++ i)
{
scanf("%d", &a[i]);
}
printf("请为第二个数组赋值");
for ( i = 0; i < n; ++ i)
{
scanf("%d", &b[i]);
}
swap_array(a,b,n);
printf("after swap b is:\n");
for(i=0;i<n;++i)
printf("%d ",b[i]);
printf("after swap a is:\n");
for(i=0;i<n;++i)
printf("%d ",a[i]);
printf("\n");
}