帮我用C语言写:随机生成10个50以内的整数,用函数实现将其中的最大数与最小数的位置对换后,再输出调整后的数组。
时间: 2024-03-21 07:40:18 浏览: 15
好的,以下是代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 生成随机整数
int rand_int(int max) {
return rand() % (max + 1);
}
// 打印数组
void print_array(int arr[], int n) {
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
// 交换两个数的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 找出最大值和最小值的下标并交换位置
void swap_max_min(int arr[], int n) {
int max_index = 0, min_index = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
swap(&arr[max_index], &arr[min_index]);
}
int main() {
srand(time(NULL));
int arr[10];
for (int i = 0; i < 10; i++) {
arr[i] = rand_int(50);
}
printf("原始数组:");
print_array(arr, 10);
swap_max_min(arr, 10);
printf("调整后的数组:");
print_array(arr, 10);
return 0;
}
```
代码逻辑很简单,首先生成随机数组,然后打印原始数组,接着调用 `swap_max_min` 函数交换最大值和最小值的位置,最后再打印调整后的数组。