用c语言编写随机生成10个50以内的整数,用函数实现将其中的最大数与最小数的位置对换后,再输出调整后的数组。
时间: 2024-03-21 12:39:49 浏览: 67
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,我来为您解决这个问题。
以下是实现的C代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
void swapMinMax(int arr[], int size){
int max = 0, min = 0;
for(int i = 1; i < size; i++){
if(arr[i] > arr[max]){
max = i;
}
if(arr[i] < arr[min]){
min = i;
}
}
swap(&arr[max], &arr[min]);
}
int main(){
int arr[10];
srand(time(NULL));
for(int i = 0; i < 10; i++){
arr[i] = rand() % 50;
}
printf("Original Array: ");
for(int i = 0; i < 10; i++){
printf("%d ", arr[i]);
}
swapMinMax(arr, 10);
printf("\nAdjusted Array: ");
for(int i = 0; i < 10; i++){
printf("%d ", arr[i]);
}
return 0;
}
```
首先我们定义了一个 `swap` 函数,用于交换数组中两个元素的位置。
然后我们定义了 `swapMinMax` 函数,它使用了一个循环来找到数组中最大值和最小值的位置,并使用 `swap` 函数来交换它们的位置。
在 `main` 函数中,我们使用 `srand` 和 `rand` 函数来生成随机整数,并将它们存储到数组中。然后我们打印出原始数组,调用 `swapMinMax` 函数,再打印出调整后的数组。
希望这能够帮助您解决问题!
阅读全文