import java.util.Scanner; public class Main { /* * 给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列。 第一行为序列的大小N(1< =N< =1000)和操作个数M(1< * =M< =1000)。 第二行包含N个数字,表示初始序列。 接下来M行,每行两个整数x,y (1< =x,y< * =N),表示要交换的两个整数。在一次交换中,如果x和y相等,则不会改变序列的内容。 */ public static void main(String[] args) { Scanner input = new Scanner(System.in); int N = input.nextInt(); int M = input.nextInt(); int[] arr1 = new int[N]; for (int i = 0; i < N; i++) { arr1[i] = input.nextInt(); } int temp = 0; int[] arr2 = new int[2]; for (int i = 0; i < M; i++) // 每一次交换位置; { arr2[0] = input.nextInt(); arr2[1] = input.nextInt(); //交换位置, 对应于数组,索引 减 一 temp = arr1[(arr2[0] - 1)]; arr1[(arr2[0] - 1)] = arr1[(arr2[1] - 1)]; arr1[(arr2[1] - 1)] = temp; } for (int i = 0; i < arr1.length; i++) { System.out.println(arr1[i]); } } }
解题思路: 顺便点个赞
注意事项:
参考代码:
0.0分
1 人评分
C语言训练-邮票组合问题* (C语言代码)浏览:712 |
C语言程序设计教程(第三版)课后习题8.6 (C++代码)浏览:763 |
C语言训练-阶乘和数* (C++代码)(直接输出样例hhhh)浏览:1177 |
简单的a+b (C语言代码)浏览:585 |
点我有惊喜!你懂得!浏览:2754 |
小明A+B (C语言代码)浏览:1316 |
最小公倍数 (C语言代码)浏览:894 |
printf基础练习2 (C语言代码)浏览:321 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:798 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:573 |