用C语言编写一个void f(int a[],int n)交换最大值和第一个值,最小值与最后一个值
时间: 2023-06-15 22:08:09 浏览: 102
以下用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语言编写函数实现void fun(int a,int b ,int *pmax,int *pmin,float *pav) ,求出a,b的最大值和最小值、平均值通过指针返回;
下面是实现该函数的代码:
```c
void fun(int a, int b, int *pmax, int *pmin, float *pav)
{
*pmax = (a > b) ? a : b; // 求最大值
*pmin = (a < b) ? a : b; // 求最小值
*pav = (a + b) / 2.0f; // 求平均值
}
```
该函数接受三个输入参数:整数a和b,以及三个指针变量pmax、pmin和pav。
该函数通过指针返回a和b的最大值和最小值,分别存储在*pmax和*pmin中。
该函数还通过指针返回a和b的平均值,存储在*pav中。
使用该函数的示例代码如下:
```c
int main()
{
int a = 10, b = 20;
int max, min;
float avg;
fun(a, b, &max, &min, &avg);
printf("a = %d, b = %d\n", a, b);
printf("max = %d, min = %d, avg = %f\n", max, min, avg);
return 0;
}
```
输出结果为:
```
a = 10, b = 20
max = 20, min = 10, avg = 15.000000
```
阅读全文