用C语言编写一个void f(int a[],int n)交换最大值和第一个值,最小值与最后一个值
时间: 2023-06-15 22:08:09 浏览: 42
以下用C语言编写的交换最大值和第一个值,最小值与最后一个值的函数:
```c
void f(int a[], int n)
{
int max_index = 0, min_index = n - 1;
int i;
// 找到最大值和最小值的下标
for (i = 1; i < n; i++) {
if (a[i] > a[max_index]) {
max_index = i;
}
if (a[i] < a[min_index]) {
min_index = i;
}
}
// 交换最大值和第一个值
int temp = a[0];
a[0] = a[max_index];
a[max_index] = temp;
// 交换最小值和最后一个值
temp = a[n - 1];
a[n - 1] = a[min_index];
a[min_index] = temp;
}
```
这个函数的参数是一个整型数组 `a` 和数组元素个数 `n`。它首先遍历整个数组找到最大值和最小值的下标,然后交换最大值和第一个值,交换最小值和最后一个值。
相关问题
用C语言编写函数 void f(int a[],int n),要求最大的与第一个交换,最小的与最后一个交换
以下是用C语言编写的满足要求的函数f(int a[],int n)的代码:
```c
void f(int a[], int n)
{
int max_index = 0, min_index = n - 1, i;
// 找到最大值和最大值所在的位置
for (i = 1; i < n; i++) {
if (a[i] > a[max_index])
max_index = i;
}
// 交换最大值和第一个元素
int temp = a[0];
a[0] = a[max_index];
a[max_index] = temp;
// 找到最小值和最小值所在的位置
for (i = 0; i < n - 1; i++) {
if (a[i] < a[min_index])
min_index = i;
}
// 交换最小值和最后一个元素
temp = a[n - 1];
a[n - 1] = a[min_index];
a[min_index] = temp;
}
```
此函数首先找到数组中的最大值和最小值,然后分别与第一个元素和最后一个元素进行交换。
用c语言使用指针输入一维数组10个元素, 最小值与第一个交换,最大值与最后 个交换。
以下是使用指针在 C 语言中实现输入一维数组,交换最小值和第一个元素,以及交换最大值和最后一个元素的示例代码:
```c
#include <stdio.h>
// 函数声明
void swap(int *a, int *b);
void min_max_swap(int *arr, int n);
int main() {
int arr[10];
int i;
// 使用指针输入一维数组
printf("请输入数组元素:\n");
for (i = 0; i < 10; i++) {
scanf("%d", arr + i);
}
// 交换最小值和第一个元素,最大值和最后一个元素
min_max_swap(arr, 10);
// 输出交换后的数组
printf("交换后的数组为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
return 0;
}
// 交换两个变量的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 交换最小值和第一个元素,最大值和最后一个元素
void min_max_swap(int *arr, int n) {
int i, min_index = 0, max_index = 0;
for (i = 1; i < n; i++) {
if (*(arr + i) > *(arr + max_index)) {
max_index = i;
}
if (*(arr + i) < *(arr + min_index)) {
min_index = i;
}
}
swap(arr + min_index, arr);
swap(arr + max_index, arr + n - 1);
}
```
在这个代码中,我们使用 scanf 函数从用户输入中读取元素,并使用指针将它们存储到数组中。然后,我们定义了一个 min_max_swap 函数,它使用循环查找数组中的最小值和最大值,并使用 swap 函数交换这些元素。最后,我们在主函数中调用 min_max_swap 函数,并输出交换后的数组。
请注意,这里使用了指针来访问数组元素,因为指针可以使得代码更加简洁和高效。