#include<stdio.h> int max_min(int a[], int n, int* max, int* min) { int* p; *max = *min = *a; for (p = a + 1; p < a + n; p++) { if (*p > * max) { *max = *p; //最大值 } else if (*p < * min) { *min = *p; //最小值 } } return 0; } int main(void) { int a[10]; int max, min; printf("请输入10个整数:\n"); for (int i = 0; i < 10; i++) { scanf("%d", &a[i]); //输入数组元素 } max_min(a, 10, &max, &min); //调用max_min函数 printf("\n最大值是:%d\n", max); return 0; }
时间: 2024-04-28 16:20:59 浏览: 79
这段代码实现了在一个整型数组中找出最大值和最小值,并使用了指针的方式返回最大值和最小值。
代码中的 `max_min` 函数接受一个整型数组 `a`、数组长度 `n` 以及两个指向整型变量的指针 `max` 和 `min`,函数的作用是找出数组中的最大值和最小值,并将它们分别赋值给 `max` 和 `min` 所指向的变量。
`max` 和`min` 的初始值都被赋为数组 `a` 的第一个元素 `*a`,然后利用指针 `p` 遍历整个数组,如果找到比当前最大值 `*max` 更大的元素,则将 `*max` 更新为该元素的值;如果找到比当前最小值 `*min` 更小的元素,则将 `*min` 更新为该元素的值。
在 `main` 函数中,首先从标准输入中读入10个整数,并将它们存入数组 `a` 中,然后调用 `max_min` 函数,最后输出最大值。
这是一种比较常见的利用指针求解数组最大值和最小值的方法,代码简洁,易于理解。
相关问题
#include <stdio.h> #include <stdlib.h> void maxmin(int A[],int l,int r,int *maxval,int *minval) {
这段代码定义了一个函数 maxmin,它接收四个参数:一个整型数组 A,数组的左右边界 l 和 r,以及两个指向整型变量的指针 maxval 和 minval。函数的作用是在数组 A 的 l 到 r 这个区间内找到最大值和最小值,并将它们分别存储到 maxval 和 minval 所指向的变量中。
具体实现过程为:先将 A[l] 赋值给 maxval 和 minval,然后从 l+1 开始遍历数组,每次将遍历到的元素与 maxval 和 minval 进行比较,如果当前元素比 maxval 大,则更新 maxval,如果当前元素比 minval 小,则更新 minval。最终遍历完整个区间后,maxval 和 minval 中存储的就是数组 A 中的最大值和最小值。
#include <stdio.h> int main(void) { int a,b,c,min,max; scanf("%d %d %d",&a,&b,&c); min=a; _____________ if(b<min) min=b;else if(b>max) max=b; if(c<min) min=c;else _____________ printf(“%d %d\n”,min,max); return 0; }
填空部分应该分别为:
else if(b>max) max=b;
和
max=c;
这段代码的作用是,输入三个整数,找出其中的最小值和最大值,并输出它们。首先将第一个数赋值给min,然后逐个与后面的数进行比较,如果有比当前min更小的数,就将min更新为该数;如果有比当前max更大的数,就将max更新为该数。最后输出min和max即可。
阅读全文