用C语言编写输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。使用指针写以下函数:(1)求最小数、最大数的位置;(2)进行对换处理;(3)主函数。
时间: 2023-12-04 09:11:10 浏览: 69
好的,以下是程序代码:
```c
#include <stdio.h>
void find_min_max(int *arr, int len, int *min_index, int *max_index);
void swap(int *a, int *b);
void exchange(int *arr, int len);
int main()
{
int arr[10];
int i;
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
exchange(arr, 10);
printf("处理后的数组为:\n");
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void find_min_max(int *arr, int len, int *min_index, int *max_index)
{
int i;
*min_index = 0;
*max_index = 0;
for (i = 1; i < len; i++)
{
if (arr[i] < arr[*min_index])
{
*min_index = i;
}
if (arr[i] > arr[*max_index])
{
*max_index = i;
}
}
}
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void exchange(int *arr, int len)
{
int min_index, max_index;
find_min_max(arr, len, &min_index, &max_index);
swap(&arr[min_index], &arr[0]);
swap(&arr[max_index], &arr[len - 1]);
}
```
程序的主要思路是利用指针来对数组进行处理。在 `find_min_max` 函数中,我们使用指针来记录最小数和最大数的位置,然后遍历数组进行比较,找到最小数和最大数的位置。在 `swap` 函数中,我们使用指针来进行两个数的交换。在 `exchange` 函数中,我们首先调用 `find_min_max` 函数来找到最小数和最大数的位置,然后分别使用 `swap` 函数将最小数和第一个数进行交换,将最大数和最后一个数进行交换。最后,在 `main` 函数中,我们通过调用 `exchange` 函数来实现对数组的处理。
阅读全文