c语言产生n个2位(10~99)随机整数,存放到数组中。找出其中最大的数和最小的数,并将两者互换位置,将交换后的数组内容显示出来
时间: 2024-05-11 15:17:32 浏览: 139
我可以回答此类编程问题,以下是代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int n = 10; // 产生10个随机数
int arr[n];
srand(time(NULL)); // 初始化随机数种子
for (int i = 0; i < n; i++) {
arr[i] = rand() % 90 + 10; // 产生10~99的随机数
printf("%d ", arr[i]); // 输出随机数
}
printf("\n");
int max = arr[0], min = arr[0], max_idx = 0, min_idx = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > max) { // 找出最大数及其下标
max = arr[i];
max_idx = i;
}
if (arr[i] < min) { // 找出最小数及其下标
min = arr[i];
min_idx = i;
}
}
printf("最大值:%d,最小值:%d\n", max, min);
if (max_idx != min_idx) { // 最大数和最小数不在同一个位置时才交换位置
arr[max_idx] = min;
arr[min_idx] = max;
printf("交换后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]); // 输出交换后的数组
}
printf("\n");
} else {
printf("最大值和最小值在同一个位置,无需交换\n");
}
return 0;
}
```
以上代码可以产生10个随机数,找出其中最大的数和最小的数,将它们互换位置后输出交换后的数组内容。
阅读全文