有一个数组,内放10个整数,要求找出最小的数和它的下标。然后把它和数组中最前面的元素对换。
时间: 2023-05-31 11:20:10 浏览: 302
数据结构与算法——数组(剑指offer拓展篇)
### 回答1:
可以使用循环遍历数组,依次比较每个元素,找出最小的数和它的下标。然后将最小的数和数组中第一个元素进行交换即可。
具体实现可以参考以下代码:
int arr[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, };
int min = arr[];
int index = ;
// 找出最小的数和它的下标
for (int i = 1; i < 10; i++) {
if (arr[i] < min) {
min = arr[i];
index = i;
}
}
// 将最小的数和数组中第一个元素进行交换
int temp = arr[];
arr[] = min;
arr[index] = temp;
// 输出交换后的数组
for (int i = ; i < 10; i++) {
printf("%d ", arr[i]);
}
### 回答2:
解题思路:
这道题目可以通过遍历数组,找出最小的数和它的下标,然后再将最小的数和数组中第一个元素交换位置,并输出交换后的数组。
首先,可以定义一个数组,内放10个整数,然后定义两个变量,一个用来存储最小的数,另一个用来存储最小数的下标。
接下来,可以通过for循环遍历这个数组,如果当前的数比最小的数还小,就更新最小的数和它的下标。
最后,再将最小的数和数组中第一个元素交换位置,即可得到交换后的数组。
代码实现:
int[] arr = {1, 3, 5, 7, 9, 2, 4, 6, 8, 0};
int min = arr[0]; //定义最小值
int min_idx = 0; //定义最小值的下标
//遍历数组
for(int i = 1; i < arr.length; i++){
if(arr[i] < min){
min = arr[i];
min_idx = i;
}
}
//将最小的数和数组中第一个元素交换位置
int temp = arr[0];
arr[0] = min;
arr[min_idx] = temp;
//输出交换后的数组
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
输出结果:
0 3 5 7 9 2 4 6 8 1
最小的数是0,它的下标是9,将它和数组中第一个元素交换位置后,得到的数组为{0, 3, 5, 7, 9, 2, 4, 6, 8, 1}。
### 回答3:
解:
这道题目比较简单,可以通过遍历整个数组,找到最小的数和它的下标,然后将其和数组中最前面的元素对调即可。下面是具体步骤:
1. 假设我们有一个数组A,内放10个整数,可以用一个循环来遍历整个数组。
2. 在循环中,可以定义两个变量,分别保存当前最小的数和它所在的下标。初始时,最小的数可以设为数组中的第一个数,下标为0。
3. 遍历数组中的每一个数,并将当前数和最小数进行比较。如果当前数比最小数还要小,那么更新最小数和下标。
4. 遍历完整个数组后,最小数和它的下标就已经找到了。
5. 将最小数和数组中最前面的元素进行对换,即将最小数赋值给数组的第一个元素。
6. 输出数组即可得到结果。
下面是实现代码:
```python
A = [5, 3, 8, 2, 9, 1, 4, 7, 6, 0]
# 查找最小数和它的下标
min_num = A[0]
min_index = 0
for i in range(1, len(A)):
if A[i] < min_num:
min_num = A[i]
min_index = i
# 将最小数和数组中最前面的元素进行对换
A[0], A[min_index] = A[min_index], A[0]
# 输出数组
print(A)
```
输出结果为:
```
[0, 3, 8, 2, 9, 1, 4, 7, 6, 5]
```
可以看到,最小数5已经被移动到了数组的最前面。
阅读全文