描述
给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列。
要求:
1)使用指针的知识完成本题,助教会检查代码
2)编写swap(int* x ,int* y)函数用来交换两个整数
输入
第一行为序列的大小N(1<=N<=1000)和操作个数M(1<=M<=1000)。
第二行包含N个数字,表示初始序列。
接下来M行,每行两个整数x,y (1<=x,y<=N),表示要交换的两个整数的位置。在一次交换中,如果x和y相等,则不会改变序列的内容。
输出
输出N行,为交换后的序列中的数。
输入样例 1
5 2 1 2 3 4 5 1 2 3 4
输出样例 1
2 1 4 3 5
代码:
#include<stdio.h>
void swap(int* x,int* y)
{
int t=*x;
*x=*y;
*y=t;
}
int main()
{
int N,M,i,x,y;
int arr[1000];
scanf("%d%d",&N,&M);
for(i=0;i<N;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<M;i++)
{
scanf("%d%d",&x,&y);
swap(&arr[x-1],&arr[y-1]);
}
for(i=0;i<N;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}