用变长参数表写的max函数,求纠正
#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; }
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;}