用C语言编写一个程序:随机生成10个50以内的整数,用函数实现将其中的最大数与最小数的位置对换后,再输出调整后的数组。
时间: 2024-03-19 15:46:26 浏览: 71
返回非整数值的函数-unigui 学习笔记
好的,下面是实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap_max_min(int nums[], int len) {
int max_idx = 0, min_idx = 0;
for (int i = 1; i < len; i++) {
if (nums[i] > nums[max_idx]) {
max_idx = i;
} else if (nums[i] < nums[min_idx]) {
min_idx = i;
}
}
int temp = nums[max_idx];
nums[max_idx] = nums[min_idx];
nums[min_idx] = temp;
}
int main() {
int nums[10];
srand(time(NULL));
for (int i = 0; i < 10; i++) {
nums[i] = rand() % 50;
}
printf("原始数组:");
for (int i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
printf("\n");
swap_max_min(nums, 10);
printf("交换后的数组:");
for (int i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
这个程序采用了类似于Python的思路,先生成一个随机整数数组,然后用 `swap_max_min` 函数交换其中的最大值和最小值。我们使用 `srand` 和 `rand` 函数来生成随机数,使用 `time` 函数来种下随机数生成的种子。在 `swap_max_min` 函数中,我们遍历数组找到最大值和最小值的下标,然后进行交换。最后输出原始数组和交换后的数组。
阅读全文