版权声明:本文为大都督作者的原创文章,未经 大都督 允许也可以转载,但请注明出处,谢谢! 共勉! https://blog.csdn.net/qq_37335220/article/details/85463521
怎样实现元素互换
1.题述
从键盘上输入10个整数,并将其放入一个一维数组中,然后将其前5个元素与后5个元素对换,
即:第1个元素与第10个元素互换,第2个元素与第9个元素互换…第5个元素与第6个元素互换。
分别输出数组原来各元素的值和对换后各元素的值。
2.效果
3.Java代码
package com.example.demo.interviewQuestions;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @Description 面试题2 怎样实现元素互换
* @author 大都督
* @date 2018年12月29日
*/
public class ExchangeQuestion {
/**
* 从键盘上输入10个整数,并将其放入一个一维数组中,然后将其前5个元素与后5个元素对换,
* 即:第1个元素与第10个元素互换,第2个元素与第9个元素互换…第5个元素与第6个元素互换。
* 分别输出数组原来各元素的值和对换后各元素的值。
*/
public static void main(String args[]) {
print();
}
public static int[] write() {
//缓冲数组
BufferedReader[] buf = new BufferedReader[10];
//开关量 和 中间量
int n;
int array[] = new int[10];
//赋值
for (int i = 0; i < 10; i++) {
//给每个缓冲区定义
buf[i] = new BufferedReader(new InputStreamReader(System.in));
do { /* 判断是否是空串,如是则重新输入 */
n = 1;
System.out.print("请输入第" + (i + 1) + "个整数:");
try { /* 建立一个异常捕获 */
array[i] = Integer.parseInt(buf[i].readLine());/* 执行串变整数 */
/*
* Integer.parseInt(str) - str 转成 int型 buf[i].readLine() -
* 从系统输入缓冲区读入字符流给buf缓冲区并返回字符串
*/
} catch (NumberFormatException e) { /* 捕获异常 */
System.out.println("数据输入错误请重新输入");/* 处理异常 */
n = 0;
} catch (IOException e) {
e.printStackTrace();
}
} while (n == 0);
}
return array;
}
public static void print() {
int[] ary = write();
int s;
System.out.println("\n你输入的数组是:");
for (int i = 0; i < 10; i++) { /* 输出原数组 */
System.out.print(ary[i] + " ");
}
for (int i = 0; i < 5; i++)/* 对换 */ {
s = ary[i];
ary[i] = ary[9 - i];
ary[9 - i] = s;
}
System.out.println("\n对换后的数组是:");
for (int i = 0; i < 10; i++) { /* 输出对换后数组 */
System.out.print(ary[i] + " ");
}
System.out.println();
}
}