C和指针之函数之求参数列表中的最大值
1、问题
*编写一个叫max_list函数,它用于检查任意数目的整形参数
*并返回他们中的最大值,参数列表必须以一个负数结尾,提
*示列表的结束
*并返回他们中的最大值,参数列表必须以一个负数结尾,提
*示列表的结束
2、代码实现
#include <stdio.h>
#include <stdarg.h>
/**
*编写一个叫max_list函数,它用于检查任意数目的整形参数
*并返回他们中的最大值,参数列表必须以一个负数结尾,提
*示列表的结束
*/
int max_arg(int first, ...)
{
//指向参数栈
va_list va_arg;
//初始化
va_start(va_arg, first);
//获取第一个参数的值
int value = va_arg(va_arg, int);
int max = first;
while (value > 0)
{
if (value > max)
max = value;
value = va_arg(va_arg, int);
}
va_end(va_arg);
return max;
}
int main()
{
int max = max_arg(2, 3, 5, 4, 1, -1, 7);
printf("max_arg is %d\n", max);
}
3、运行结果
1111deMacBook-Pro:dabian a1111$ gcc -g max_list.c -o max_list
1111deMacBook-Pro:dabian a1111$ ./max_list
max_arg is 5
赞 (0)