寻求最大数目C语言编写的函数,在主函数中输入三个整数,调用这个函数,其最大输出

如题所述

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

int max_num(int n,...) //第一个参数是要求最大值的数字的个数n,后面跟n个参与运算的整数
{
va_list vt;
int i;
int rt,a,b;
va_start(vt,n);

if (n<1) exit(-1);
else if (n==1) rt=va_arg(vt,int);
else
{
rt=va_arg(vt,int);
b=va_arg(vt,int);
for (n-=2; n>=0; n--) {
rt=rt>=b?rt:b;
if (n) b=va_arg(vt,int);
}
}

va_end(vt);
return rt;

}
int main(void)
{
int a,b,c,m;
scanf("%d%d%d",&a,&b,&c);
printf("%d",max_num(3,a,b,c));
return 0;
}
//---------------------------------------------------------------------------
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-16
char* process(char table_temp[3])
{
static char max_num;
max_num = table_temp[0];
if(max_num<table_temp[1])
max_num=table_temp[1];
if(max_num<table_temp[2])
max_num=table_temp[2];

return &max_num;
}
char table[3];
struct Compare{
char Max;
char* (*excute)(char temp[3]);
} compare;

int main(int argc, char* argv[])
{
char i;
for(i=0;i<3;i++)
{
printf("Please input the %d num:\n",i+1);
scanf("%d",&table[i]);

}
compare.excute=process;
compare.Max = *compare.excute(table);
printf("the max num is %d\n",compare.Max);
return 0;
}本回答被网友采纳
第2个回答  2012-05-16
int max(int a,int b,int c)
{
int max = (a>b)?a:b;
return (max>c)?max:c;
}
相似回答