- /*
- 3.分析以下需求,并用代码实现:(扩展)
- (1)键盘录入6个int类型的数据存数数组arr中
- (2)将arr数组中的内容反转
- (3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
- (4)最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
- (5)打印最终的数组(实现了1-4步之后的数组)
- (6)如:用户输入的6个int数字为[1,2,3,4,5,6],最后输出的结果为[6, 5, 4, 1, 2, 3]
- */
- import java.util.Scanner;
- class Test4 {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in); //创建键盘录入对象
- int[] arr = new int[6]; //2 5 8 9 7 1
- int i = 0;
- while (i < 6) {
- System.out.println("请录入数组索引为"+i+"的元素");
- arr[i] = sc.nextInt();
- ++i;
- }
- //print(arr); 打印键盘录入的数组
- revArray(arr);
- //print(arr); 打印反转后的数组
- JiaoHuan(arr);
- //print(arr); //打印1和3换, 3和5换,以此类推后的数组
- int first = getFirstMark(arr);
- //System.out.println(first); 输出数组中第一个出现的奇数
- int fin = getFinalMark(arr);
- //System.out.println(fin); 输出数组中最后出现的奇数
-
- JiaoHuanMark(arr,first,fin);
- print(arr);
- }
- public static void revArray(int[] arr) {
- int temp = 0;
- for (int i = 0;i < arr.length / 2 ;i++ ) {
- temp = arr[i];
- arr[i] = arr[arr.length - 1 -i];
- arr[arr.length - 1 - i] = temp;
- }
- }
- public static void print(int[] arr) {
- for (int i = 0;i < arr.length ;i++ ) {
- System.out.print(arr[i] +" ");
- }
- System.out.println();
- }
- public static void JiaoHuan(int[] arr) {
- int temp = 0;
- for (int i = 1;i <= (arr.length - 1)/2 ;i++ ) {
- temp = arr[2*i + 1];
- arr[2*i + 1] = arr[2*i - 1];
- arr[2*i - 1] = temp;
- }
- }
- public static int getFirstMark(int[] arr) {
- int mark = 0;
- for (int i = 0;i < arr.length ;i++ ) {
- if (arr[i] % 2 == 1) {
- return mark = i;
- }
- }
- return -1;
- }
- public static int getFinalMark(int[] arr) {
- int fin = 0;
- for (int i = arr.length - 1;i >=0 ;i-- ) {
- if (arr[i] % 2 == 1) {
- return fin = i;
- }
- }
- return -1;
- }
- public static void JiaoHuanMark(int[] arr,int first,int fin) {
- int temp = 0;
- temp = arr[fin];
- arr[fin] = arr[first];
- arr[first] = temp;
- }
- }
复制代码 |
|