c语言:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置.
时间: 2023-12-06 19:44:24 浏览: 37
以下是 C 语言的代码实现:
```c
#include <stdio.h>
int main() {
int arr[10] = {5, 3, 7, 2, 9, 1, 8, 4, 6, 0}; // 定义数组并初始化
int minIndex = 0; // 最小值的下标
for (int i = 1; i < 10; i++) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
}
int temp = arr[0]; // 交换最小值和第一个元素
arr[0] = arr[minIndex];
arr[minIndex] = temp;
printf("最小数是:%d,下标是:%d\n", arr[0], minIndex);
return 0;
}
```
运行结果:
```
最小数是:0,下标是:9
```
注意,这里的数组元素是手动初始化的,实际情况下可能需要从用户输入或其他方式获取。
相关问题
C语言有一数组内存放10个整数,要求找出最大数和它的下标, 然后把它和数组中第0个元素对换位置。
好的,这个问题可以用以下代码实现:
```c
#include <stdio.h>
int main() {
int nums[10] = {5, 7, 2, 9, 1, 4, 6, 8, 3, 0}; // 初始化数组
int max = nums[0]; // 假设最大值为数组第一个元素
int max_index = 0; // 最大值下标为0
// 遍历数组,寻找最大值和它的下标
for (int i = 1; i < 10; i++) {
if (nums[i] > max) {
max = nums[i];
max_index = i;
}
}
printf("最大值为:%d,下标为:%d\n", max, max_index);
// 将最大值和第0个元素对换位置
int temp = nums[0];
nums[0] = max;
nums[max_index] = temp;
// 输出交换后的数组
printf("交换后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
这段代码中,我们首先定义了一个长度为10的整型数组 `nums`,并初始化了它的元素。然后,我们假设数组的第一个元素为最大值,并遍历整个数组,寻找最大值和它的下标。找到最大值后,我们将它和数组的第0个元素对换位置,最后输出交换后的数组。
有一数组内放5个整数,要求找出第一次出现的最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。用C语言怎么做
可以使用以下代码实现:
```
#include <stdio.h>
int main() {
int nums[5] = {3, 7, 1, 9, 4};
int min = nums[0];
int min_index = 0;
// 找出第一次出现的最小数和它的下标
for (int i = 0; i < 5; i++) {
if (nums[i] < min) {
min = nums[i];
min_index = i;
}
}
// 把最小数和数组中第一个数对换位置
int temp = nums[0];
nums[0] = min;
nums[min_index] = temp;
// 输出结果
printf("交换前:");
for (int i = 0; i < 5; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
程序执行后输出的结果为:
```
交换前:1 7 3 9 4
```