用于查找任意数目的正整型参数的最大值

      参数列表必须以一个负值结尾,提示列表的结束。
#include<stdarg.h>
#include<stdio.h>


/*
**从参数列表中返回最大值,这个参数列表是以一个负数结尾的。
*/
int 
max_list(int first_arg, ...)
{
	va_list var_arg;
	int max = 0;

	/*
	**如果条件满足的话,将它作为最大值保存。
	*/
	if (first_arg >= 0)
	{
		int this_arg;

		max = first_arg;

		/*
		**依次获取剩余的参数,如果这比当前的max大,将它保存为最大值
		*/
		va_start(var_arg, first_arg);
		while ((this_arg = va_arg(var_arg, int)) >= 0)
		{
			if (this_arg > max)
			{
				max = this_arg;
			}
		}
		va_end(var_arg);
	}
	return max;
}


int
main()
{
	int max = max_list(1, 2, 3, 4, 5, 6, 7, 8, 9, -1);
	printf("%d\n", max);
	return 0;
}
本程序在VS2017下运行通过。

猜你喜欢

转载自blog.csdn.net/qq_41822235/article/details/80263310