C语言实现:【问题描述】利用函数和指针编写程序,将数组a中的最小数保存在a[0]中,最大数保存在a[9]中。假设整型数组a有10个元素。【输入形式】输入为整数类型 【输出形式】【样例输入】10 9 8 7 6 5 4 3 2 1【样例输出】1 9 8 7 6 5 4 3 2 10【样例输入】2 1 2 1 1 1 1 1 1 2【样例输出】1 1 2 1 1 1 1 1 2 2【样例说明】输入有数字相同时,为统一标准,有以下说明:出现输入数字相同的情况,以顺序靠后的数字为准。比如上述样例输入最小值1出现多次,实际a[0]是与a[8]进行了调换。a[9]本身为最大,实际是与自身调换。
时间: 2024-02-29 08:52:06 浏览: 35
以下是C语言实现的代码:
```c
#include <stdio.h>
void min_max(int *a) {
int max = 0, min = 0;
for (int i = 1; i < 10; i++) {
if (a[i] > a[max]) {
max = i;
}
if (a[i] < a[min]) {
min = i;
}
}
int temp = a[0];
a[0] = a[min];
a[min] = temp;
temp = a[9];
a[9] = a[max];
a[max] = temp;
}
int main() {
int a[10];
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
min_max(a);
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
首先定义一个 `min_max` 函数,使用指针对数组进行操作,找到最大值和最小值的下标,然后将最小值和 `a[0]` 进行交换,将最大值和 `a[9]` 进行交换。
在 `main` 函数中输入数组元素,调用 `min_max` 函数进行处理,最后输出排序后的数组。
阅读全文