题目: 有10个数字要求分别用选择法从大到小输出
解题关键:数字索引的互换
思路:1.创建数组
2.输入数据
3.找到最大的索引
4.索引互换
过程: 接下来我们根据我们的解题思路来一步步写代码
1.创建数组
int[] nums = new int[10];
2.输入数据
Scanner sc = new Scanner(System.in);
for (int i = 0; i < nums.length; i++) {
System.out.print("第" + (i + 1) + "位数为:");
nums[i] = sc.nextInt();
}
3.找到最大的索引
for (int i = 0; i < nums.length; i++) {
int index = 0;
for (int j = 0; j < nums.length - i; j++) {
if(nums[index] > nums[j]){
index = j;
}
}
4.索引互换
int temp = nums[nums.length - i - 1];
nums[nums.length - i - 1] = nums[index];
nums[index] = temp;
}
System.out.println("结果:");
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
完整结果如下:
为了方便大家使用,下面附上源码:
// 1.创建数组
int[] nums = new int[10];
// 2.输入数据
Scanner sc = new Scanner(System.in);
for (int i = 0; i < nums.length; i++) {
System.out.print("第" + (i + 1) + "位数为:");
nums[i] = sc.nextInt();
}
//选择法
// 3.找到最大的索引
for (int i = 0; i < nums.length; i++) {
int index = 0;
for (int j = 0; j < nums.length - i; j++) {
if(nums[index] > nums[j]){
index = j;
}
}
//4.索引互换
int temp = nums[nums.length - i - 1];
nums[nums.length - i - 1] = nums[index];
nums[index] = temp;
}
System.out.println("结果:");
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
总结:索引互换之后在进行数组遍历,再判断,大家可以用断点来一行行观看这个代码的运行
明日练习:求一个3*3矩阵对角线元素之和
大家可以自己写写,明天中午12点我准时发出我的写法哦,明天12点不见不散
一生朋友一生情,一生有你才会赢;千山万水总是情,点个关注行不行!