问题:
有一数组内放5个整数,要求找出第一次出现的最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。
输入格式:
在一行中输入5个用空格间隔的整数。
输出格式:
在第一行输出变化后的一维数组,每个数占4列列宽,在第二行输出“min=最小值,weizhi=下标”,最小值和下标都是原样输出,没有列宽控制。
代码实现如下
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] array = new int[5];
for (int i = 0; i < 5; i++) {
array[i] = scanner.nextInt();
}
int minIndex = 0;
int minValue = array[0];
for (int i = 1; i < 5; i++) {
if (array[i] < minValue) {
minValue = array[i];
minIndex = i;
}
}
int temp = array[0];
array[0] = array[minIndex];
array[minIndex] = temp;
// 输出变化后的一维数组
for (int i = 0; i < 5; i++) {
System.out.printf("%4d", array[i]);
}
// 输出最小值和下标
System.out.println("\nmin=" + minValue + ",weizhi=" + minIndex);
}
}
-
首先通过
Scanner
从标准输入中读取一行数据,包含了五个整数,这五个整数构成了一个数组。 -
然后定义一个整型数组
array
用来存储这五个整数。 -
通过遍历输入的五个整数,将它们依次存储到数组
array
中。 -
紧接着,在数组
array
中找到第一次出现的最小值以及它的下标,使用变量minValue
和minIndex
来记录。 -
进行数组元素的交换操作,将找到的最小值与数组中的第一个元素进行位置交换
-
接着输出最小值及其下标即可