代码如下:
import java.util.ArrayList;
import java.util.Scanner;
/*输入n个无序的整数,请编写程序,找出其中最大数所在的位置。请以以下三种情况运行你的程序,以便验证你的程序是否正确。(不得少于5个数) ① 最大数在最前 ② 最大数在最后 ③ 最大数在中间*/
public class _03_1 {
public static void max_print(ArrayList<Integer> q, int w) {
//最大数在第一位
String s = q.get(w).toString();
System.out.println("最大数在第一位:");
System.out.print(" ");
System.out.print(s + " ; ");
for (int o = 0; o <= q.size() - 1; o++) {
if (o != w) {
System.out.print(q.get(o) + " ; ");
} else {
System.out.print(" ");
}
}
System.out.println();
System.out.println("------------");
}
public static void behind_print(ArrayList<Integer> q, int w) {
//② 最大数在最后
String s = " ";
System.out.println("最大数在最后一位:");
System.out.print(s + " ");
for (int o = 0; o <= q.size() - 1; o++) {
if (o != w) {
System.out.print(q.get(o) + " ; ");
} else {
System.out.print(" ");
}
}
System.out.println(q.get(w).toString() + " ;");
System.out.println("------------");
}
static int getMaxNum(ArrayList<Integer> a) {
//ArrayList求最大值
int max = 0;
for (int i = 0; i <= a.size() - 1; i++) {
if (a.get(i) >= max) {
max = a.get(i);
}
}
return max;
}
public static int judge_max(ArrayList<Integer> r, int g) {
//根据最大值求角标
int jiaobiao = 0;
for (int i = 0; i <= r.size() - 1; i++) {
if (r.get(i) == g) {
jiaobiao = i;
}
}
return jiaobiao;
}
public static void center_print(ArrayList<Integer> q, int w) {
//如果size为偶数
if (q.size() % 2 == 0) {
String s = " ";
System.out.println("最大数在中间:");
System.out.print(s + "");
int l = 0;
for (int o = 0; o <= q.size() / 2 - 1 && o != w; o++) {
System.out.print(" " + q.get(o) + " ;");
l = o;
}
System.out.print(q.get(w).toString() + " ;");
for (int o = q.size() / 2; o <= q.size() - 1; o++) {
if (q.get(o) != q.get(w)) {
System.out.print(" " + q.get(o) + " ;");
l = o;
}
}
System.out.println("");
System.out.println("------------");
}
//如果size为奇数
if (q.size() % 2 != 0) {
String s = " ";
System.out.println("最大数在中间:");
System.out.print(s + "");
int l = 0;
for (int o = 0; o <= q.size() / 2 - 1 && o != w; o++) {
System.out.print(" " + q.get(o) + " ;");
l = o;
}
System.out.print(q.get(w).toString() + " ;");
for (int o = q.size() / 2; o <= q.size() - 1; o++) {
if (q.get(o) != q.get(w)) {
System.out.print(" " + q.get(o) + " ;");
l = o;
}
}
System.out.println("");
System.out.println("------------");
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("你想输入多少个数,请输入个数:");
int q = sc.nextInt();
System.out.println("请输入向排序的数字: ");
ArrayList<Integer> inte = new ArrayList<>();
for (int w = 0; w <= q - 1; w++) {
inte.add(sc.nextInt());
}
ArrayList<Integer> a;
a = inte;
int m = getMaxNum(inte);//最大数
int m_mark = judge_max(a, m);//根据最大数求其角标
ArrayList<Integer> v = new ArrayList<>();
max_print(a, m_mark);
behind_print(a, m_mark);
center_print(a, m_mark);
}
}
输出: