首页 > 代码库 > 查找任意数目参数的最大值

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

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

《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 }

 

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