读书人

用变长参数表写的max函数求纠正解决

发布时间: 2012-04-22 18:34:46 作者: rapoo

用变长参数表写的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;} 

读书人网 >C++

热点推荐