读前福利:几百本互联网技术书籍送给大家https://mp.weixin.qq.com/s/dFqVQ2qJxvQ0YrIlPISJuw

1 题目
函数:max_min()
功能:找出数列中的最大值和最小值
描述:使用指针查找数列中的最大值和最小值(使用指针从而避免使用返回值)
2 思路
使用指针从而避免使用返回值
在主函数中定义最大值 max 和最小值 min,将 max 和 min 的地址传递给函数处理,计算结果直接放到主函数中定义的 max 和 min 的地址中
这样做代码执行高效并且思路清晰
3 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include <stdio.h> #include <stdlib.h> #define N 10
void max_min(int *a, int *max, int *min) { *max = *a; *min = *a; for (int i = 0; i < N; ++i) { if(*max < *(a+i)) *max = *(a+i); }
for (int i = 0; i < N; ++i) { if(*min > *(a+i)) *min = *(a+i); } }
int main(int argc, char const *argv[]) { int i, a[N]; int max, min; printf("请输入 10 个数字:\n"); for (int i = 0; i < N; ++i) { scanf("%d", a+i); } max_min(a, &max, &min); printf("输入的 10 个数字为: "); for (int i = 0; i < N; ++i) { printf("%d ", *(a+i)); } printf("\n最大值为:%d\n", max); printf("\n最小值为:%d\n", min); }
|
示例结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $ gcc ex014.c -o demo $ ./demo 请输入 10 个数字: 3 2 1 10 9 8 7 6 5 4 输入的 10 个数字为: 3 2 1 10 9 8 7 6 5 4 最大值为:10
最小值为:1
|
最后
在这里给大家准备了几百本的互联网技术类书籍,需要的来下载吧!点击获取
有任何问题,欢迎随时交流!!!