c语言:定义两个长度相同的整型数组,通过键盘输入给这两个数组赋值。

定义两个长度相同的整型数组,通过键盘输入给这两个数组赋值。编写程序交换这两个数组对应位置的数值,如数组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");
}