黑马程序员技术交流社区
标题:
键盘录入6个int类型的数据存数数组arr中
[打印本页]
作者:
新人—小明同学
时间:
2016-7-5 02:24
标题:
键盘录入6个int类型的数据存数数组arr中
/*
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;
}
}
复制代码
作者:
张弗睿
时间:
2016-10-19 18:22
厉害了word哥
作者:
qq2519157
时间:
2016-10-20 20:36
厉害了word哥{:3_51:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2