有一个数组,内放10个整数,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置,将交换后的数组显示输出。 文件名:T16-1.c, 输入格式:54 34 6 8 76 89 33 29 81 77 输出格式:6 34 54 8 76 89 33 29 81 77
时间: 2024-12-23 08:27:29 浏览: 6
在这个题目中,你需要编写一个程序,首先读取一个包含10个整数的数组`T16-1.c`。接下来,你需要找到这个数组中最小的元素及其对应的索引。一旦找到最小值和其下标,你需要将这两个元素的位置进行交换,即把最小元素放到数组的第一个位置,而原来的第一个元素移动到末尾。
下面是基本步骤:
1. 初始化两个变量,一个存储最小值(设为最大整数值),另一个存储下标(设为0)。
2. 遍历整个数组,对于每个元素,如果它小于当前的最小值,更新最小值和下标。
3. 找到最小值后,将数组的第一个元素(下标为0)和最小值所对应的元素交换。
4. 输出交换后的数组。
以下是用C语言的一个简单示例:
```c
#include <stdio.h>
#define SIZE 10
int main() {
int arr[SIZE] = {54, 34, 6, 8, 76, 89, 33, 29, 81, 77};
int min_val = INT_MAX;
int min_index = 0;
// 找出最小值和下标
for (int i = 0; i < SIZE; i++) {
if (arr[i] < min_val) {
min_val = arr[i];
min_index = i;
}
}
// 交换最小值和第一个元素
int temp = arr[0];
arr[0] = min_val;
arr[min_index] = temp;
// 输出交换后的数组
for (int i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
当你运行这个程序并输入提供的样例数据`54 34 6 8 76 89 33 29 81 77`,将会得到输出:`6 34 54 8 76 89 33 29 81 77`,正如题目所要求的。
阅读全文