c语言:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置.
时间: 2023-12-06 22:44:24 浏览: 79
以下是 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
```
注意,这里的数组元素是手动初始化的,实际情况下可能需要从用户输入或其他方式获取。
相关问题
有一数组内放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
```
c语言有一数组内放5个整数,要求找出第一次出现的最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。 输入格式: 在一行中输入5个用空格间隔的整数。 输出格式: 在第一行输出变化后的一维数组,每个数占4列列宽,在第二行输出“min=最小值,weizhi=下标”,最小值和下标都是原样输出,没有列宽控制。
以下是 C 语言的代码实现:
```
#include <stdio.h>
int main()
{
int nums[5];
int min = 0;
int min_index = 0;
for (int i = 0; i < 5; i++) {
scanf("%d", &nums[i]);
if (nums[i] < nums[min]) {
min = i;
}
}
int temp = nums[min];
nums[min] = nums[0];
nums[0] = temp;
printf("%4d%4d%4d%4d%4d\n", nums[0], nums[1], nums[2], nums[3], nums[4]);
printf("min=%d,weizhi=%d", nums[0], min);
return 0;
}
```
首先输入一个数组 nums,然后循环遍历数组,找出最小值和它的下标。接着交换最小值和数组中第一个元素的位置。最后输出变化后的数组和最小值及其下标即可。
阅读全文