查找任意数目参数的最大值

原文: 查找任意数目参数的最大值

《C和指针》第7章第4道编程题:

编写一个名叫max_list的函数,它用于检查任意数目的整型参数并返回它们中的最大值。参数列表必须以一个负值结尾,提示列表的结束。

 1 /*

 2 ** 查找任意数目的整型参数中的最大值

 3 */

 4 

 5 #include <stdio.h>

 6 /*

 7 ** 要实现可变参数列表,需要包含stdarg.h文件

 8 ** stdarg.h中声明了va_list, va_start, va_arg 和 va_end

 9 */

10 #include <stdarg.h>

11 

12 int max_list( int n, ... );

13 

14 int 

15 main()

16 {

17     printf( "%d", max_list( 10, 23, 89, 56, 83, 91, 100, -1) );

18 }

19 

20 /*

21 ** 接受任意个正整数,返回最大值

22 ** 参数列表必须以负值结尾,提示列表的结束

23 */

24 int 

25 max_list( int n, ... )

26 {

27     va_list val;

28     int max = 0;

29     int i;

30     int current;

31     

32     /*

33     ** 准备访问可变参数

34     */

35     va_start( val, n );

36     

37     /*

38     ** 取出可变列表中的值

39     ** 负值提示列表结束

40     */

41     while( ( current = va_arg( val, int ) ) >= 0 )

42     {    

43         if( max < current )

44             max = current;

45     }

46     

47     /*

48     ** 完成处理可变列表

49     */

50     va_end( val );

51     

52     return max;

53 }

 

你可能感兴趣的:(参数)