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

《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 }
时间: 2024-12-07 08:21:35

查找任意数目参数的最大值的相关文章

【php】php中获取任意个参数

本文与<[Servlet]Javaweb中获取任意个参数>(点击打开链接)为姊妹篇, 如果你有时候需要通过get方法在php页面之间传递不定个参数,该怎么实现呢? 比如如下的效果,无论通过get方法,给numUndefindParameter.php这个页面传递任意个参数,它都能正常获取. 当然,一般不推荐这样做,建议还是用<[php]基本语法与页面之间数值传递>(点击打开链接)早已说过的,非常著名的$_REQUEST["某某某参数"];的做法. 本方法,主要是

【Servlet】Javaweb中获取任意个参数

总有这样的情况,传递到后台处理方法的参数数目不知道. 比如某个前台以前要传递给getAllParameter这个Servlet的参数位置.而又要再Servlet对不定长的参数进行一一分解,这该怎么办呢? 下面做一个简单的Javaweb工程来说明这个问题,整个Javaweb工程就getAllParameter.java这个Servlet 如下图所示,无论传递给getAllParameter这个Servlet多少个参数, getAllParameter这个Servlet都一一能够将其输出. 这时候关

任意字符串参数返回最长的

1 #定义一个方法func,该func可以引入任意多的字符串参数,结果返回(长度)最长的字符串. 2 def func2(*str): 3 4 for s in str: 5 if isinstance(s,int): 6 return '请保证全部是字符串' 7 for i in range(len(str)-1): 8 if len(str[i])<len(str[i+1]): 9 aim = str[i+1] 10 return aim 11 12 print(func2('fdaf','

怎么查找关于内核参数和函数的说明文档

Linux内核源代码释出时会包含有一些关于内核参数(如sysctl.conf中的参数)和函数的说明文档,在CentOS/RedHat系统中,kernel-doc软件包里面打包的就是这些文档(也可以从官网https://www.kernel.org/下载内核源码包,里面就会有这些文档). ? 安装kernel-doc软件包: [[email protected] ~]# yum install kernel-doc 安装好kernel-doc软件包后,可以使用下面的命令查看它将文档安装在哪里了.可

Python 构造一个可接受任意数量参数的函数

为了能让一个函数接受任意数量的位置参数,可以使用一个* 参数 在这个例子中,rest 是由所有其他位置参数组成的元组.然后我们在代码中把它当成了一个序列来进行后续的计算 原文地址:https://www.cnblogs.com/baxianhua/p/10749675.html

关于 HTTP GET/POST 请求参数长度最大值的一个理解误区(转载)

1. Get方法长度限制 Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制.这个限制是特定的浏览器及服务器对它的限制.下面就是对各种浏览器和服务器的最大处理能力做一些说明. 浏览器/服务器 说明 Microsoft Internet Explorer  IE浏览器对URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应. Firefox 对于Firefox浏览器URL的长度限制为65,536个字符 Safari URL最大长度限制为 8

查找字段连续相同的最大值

数据库环境:SQL SERVER 2008R2 有基础数据如图1,要求取出id字段连续值为一组的cn最大值,即图2中红框圈中的部分.       先导入基础数据 WITH x0 AS ( SELECT 1 AS id , 100 AS cn UNION ALL SELECT 1 AS id , 200 AS cn UNION ALL SELECT 1 AS id , 300 AS cn UNION ALL SELECT 2 AS id , 400 AS cn UNION ALL SELECT 2

关于 HTTP GET/POST 请求参数长度最大值的一个理解误区

1.    Get方法长度限制 Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制.这个限制是特定的浏览器及服务器对它的限制. 如:IE对URL长度的限制是2083字节(2K+35). 下面就是对各种浏览器和服务器的最大处理能力做一些说明. Microsoft Internet Explorer (Browser) IE浏览器对URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应.Firefox (Browser) 对于Firefox浏

求任意多个数的最大值

#include <stdio.h> #include <stdarg.h> int Max(int n, ...) { int i = 0; int max = 0; va_list arg; va_start(arg, n); for (i = 0; i < n; i++) { int val = va_arg(arg,int); if (val > max) { max = val; } } va_end(arg); return max; } int main(