用变长参数表写的max函数,求纠正解决办法
用变长参数表写的max函数,求纠正
------解决方案--------------------
- C/C++ code
#include<stdarg.h> #include <stdio.h> int main() { int max(char *fmt,...); int a=126,b=212,c=1,d=88,e=19,f=3; printf("%d\n",max(a,b,c,d,e,f)); return 0; } int max(char *fmt,...) { va_list ap; int max_num; char *p; va_start(ap,fmt); max_num=*ap; for(p=fmt;*p;p++) { if(*p>max_num)max_num=*p; } va_end(ap); return max_num; }
------解决方案--------------------
- C/C++ code
int max(int a,...) { va_list ap; int max_num,temp; va_start(ap,a); temp=max_num=va_arg(ap,int); do { max_num=temp>max_num?temp:max_num; temp=va_arg(ap,int); } while(temp); va_end(ap); return max_num; }