1 题目
函数:max_min()
功能:找出数列中的最大值和最小值
描述:使用指针查找数列中的最大值和最小值(使用指针从而避免使用返回值)
2 思路
使用指针从而避免使用返回值
在主函数中定义最大值 max 和最小值 min,将 max 和 min 的地址传递给函数处理,计算结果直接放到主函数中定义的 max 和 min 的地址中
这样做代码执行高效并且思路清晰
3 代码
#include <stdio.h>
#include <stdlib.h>
#define N 10
/**
函数:max_min()
功能:找出数列中的最大值和最小值
描述:使用指针查找数列中的最大值和最小值
**/
void max_min(int *a, int *max, int *min) {
*max = *a; // 将数组下标为 0 的数字初始化给max
*min = *a; // 将数组下标为 0 的数字初始化给min
for (int i = 0; i < N; ++i) {
if(*max < *(a+i)) // 将大于max的值赋值给max
*max = *(a+i);
}
for (int i = 0; i < N; ++i) {
if(*min > *(a+i)) // 将小于min的值赋值给min
*min = *(a+i);
}
}
int main(int argc, char const *argv[]) {
int i, a[N];
int max, min;
printf("请输入 10 个数字:
");
for (int i = 0; i < N; ++i) {
scanf("%d", a+i);
// scanf("%d", &a[i]);
}
max_min(a, &max, &min);
printf("输入的 10 个数字为: ");
for (int i = 0; i < N; ++i) {
printf("%d ", *(a+i));
}
printf("
最大值为:%d
", max);
printf("
最小值为:%d
", min);
}
示例结果:
$ 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
最后
在这里给大家准备了几百本的互联网技术类书籍,需要的来下载吧!点击获取
有任何问题,欢迎随时交流!!!