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
时间: 2024-01-02 19:02:40 浏览: 43
以下是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` 函数进行处理,最后输出排序后的数组。