输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:(1)求最小数、最大数的位置;(2)进行对换处理;(3)主函数。使用C语言和指针
时间: 2023-12-04 08:09:16 浏览: 81
输入10个整数,将其中最小的数与第一个数对换
5星 · 资源好评率100%
可以这样写:
```c
#include <stdio.h>
void find_min_max(int *arr, int len, int *min_idx, int *max_idx) {
*min_idx = *max_idx = 0;
for (int i = 1; i < len; i++) {
if (arr[i] < arr[*min_idx]) {
*min_idx = i;
}
if (arr[i] > arr[*max_idx]) {
*max_idx = i;
}
}
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[10];
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
int min_idx, max_idx;
find_min_max(arr, 10, &min_idx, &max_idx);
swap(&arr[0], &arr[min_idx]);
swap(&arr[9], &arr[max_idx]);
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
首先定义一个数组 `arr`,然后循环输入 10 个整数。接下来定义一个函数 `find_min_max`,用来找到最小数和最大数所在的位置,并通过指针返回给主函数。主函数中调用 `find_min_max` 函数找到最小数和最大数的位置,然后交换最小数和第一个数的位置,交换最大数和最后一个数的位置。最后循环输出整个数组。其中,交换两个数的位置用到了 `swap` 函数。
阅读全文