黑马程序员技术交流社区
标题:
[新人第二贴]关于数组中反转,遍历,及互换等问题的思考
[打印本页]
作者:
gz9218
时间:
2016-9-4 19:35
标题:
[新人第二贴]关于数组中反转,遍历,及互换等问题的思考
分析以下需求,并用代码实现:(扩展)
(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; //导入Scanner包
class Day5_3 {
public static void main(String[] args) { //main方法
Scanner in = new Scanner(System.in); //创建键盘输入对象
System.out.println("请输入6个整数");
int[] arr = new int[6]; //定义一个数组,长度为6
for (int i = 0;i < arr.length ;i++ ) { //输入数组
System.out.println("请输入"+(i+1)+"个整数:");
arr[i] = in.nextInt();
}
for (int i = 0;i < arr.length / 2 ; i++){ //反转
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
for (int i = 1;i < arr.length-2 ; i++){ //将翻转后的数组角标为奇数的互相交换,arr.length-2是为了防止数组角标越界异常
int temp1 = arr[i+2];
arr[i+2] = arr[i];
arr[i] = temp1;
}
if ((arr.length-1)%2==0) { //判断最后一个元素的角标是否为奇数
int temp2 = arr[1]; //是的话arr[arr.length-1]与arr[1]交换
arr[1] = arr[arr.length-1];
arr[arr.length-1]=temp2;
}else{
int temp2 = arr[1]; //是的话arr[arr.length-2]与arr[1]交换
arr[1] = arr[arr.length-2];
arr[arr.length-2]=temp2;
}
System.out.print("["); //打印在控制台
for (int i = 0;i < arr.length ;i++ ) { //遍历数组中的每一个元素
System.out.print(arr[i]); //打印在控制台
if (i!=arr.length-1) {
System.out.print(","); //打印在控制台
}
}
System.out.print("]");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2