标题: 求解 [打印本页] 作者: axiaowenjin 时间: 2016-7-4 23:47 标题: 求解 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]作者: 微--尘 时间: 2016-7-5 00:10
public class LoL {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);// 创建键盘录入对象
System.out.println("6个int类型的数据:");
int[] arr = new int[6];// 定义一个整型数组
for (int i = 0; i < 6; i++) { // 键盘录入6个int类型数据并存数数组arr中
arr[i] = sc.nextInt();
}
reverse(arr);// 将arr数组中的内容反转
exchange(arr);// 将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
change(arr);// 将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
printArray(arr);// 打印最终的数组
}
// 遍历数组
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i] + "]");
} else {
System.out.print(arr[i] + ",");
}
}
}
// 将arr数组中的内容反转
public static void reverse(int[] arr) {
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;
}
}
// 数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
public static void exchange(int[] arr) {
for (int i = 0; i < arr.length; i ++) {
if(i%2!=0&&(i+2)<=(arr.length-1)){
int temp = arr[i];
arr[i] = arr[i + 2];
arr[i + 2] = temp;
}
}
}
// 将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
public static void change(int[] arr) {
for (int i = 0; i < arr.length; i ++) {
if ((i + 2) >(arr.length - 1)) {
int temp = arr[1];
arr[1] = arr[i];
arr[i] = temp;
}
}
}
}作者: 新人—小明同学 时间: 2016-7-5 01:35
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-7-5 11:10
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[6];
int t = 0;
while (t <= 5) {
System.out.println("请输入一个整数");
int a = Integer.parseInt(br.readLine());
arr[t++] = a;
}
br.close();
int max = arr.length - 1;
int min = 0;
while (max > min) {
arr[max] = arr[min] ^ arr[max] ^ (arr[min] = arr[max]);
max--;
min++;
}
arr[3] = arr[5] ^ arr[3] ^ (arr[5] = arr[3]);
for (int i : arr) {
System.out.print(i + " ");
}