#include"stdafx.h"
#include
#defineSELECT_OPTION_22
#defineSELECT_OPTION_33
#defineSELECT_OPTION_QUIT0
#definebuffer_len6
#defineYES0
#defineNO-1
voidprintf_input();
voidprint_info();
voidprint_error();
intmaxoftwo(inta,intb);
intmaxofthree(inta,intb,intc);
intis_valid(constchar*buf);
voidprint_info()
{
printf("[2]求两个数的最大值\n");
printf("[3]求三个数的最大值\n");
printf("[0]退出\n\n");
}
voidprintf_input()
{
printf("请输入你的选择2/3/0:");
}
voidprint_error()
{
printf("输入错误请重新输入\n");
//print_info();
}
intmaxoftwo(inta,intb)
{
returna>b?a:b;
}
intmaxofthree(inta,intb,intc)
{
returnmaxoftwo(a,b)>c?maxoftwo(a,b):c;
}
intis_valid(constchar*buf)
{
inti;
chars[7];
for(i=0;i<=buffer_len;i++)
{
if(!(buf[i]>='0'&&buf[i]<='9'))
{break;}
}
//__int64value=//应判断int的最大最小值是否超出范围
returni==buffer_len?YES:NO;
}
intmain(intargc,char*argv[])
{
intselect=0;
intfirst,second,third;
charbuf[7];
print_info();
do
{
printf_input();scanf("%s",buf);
if(is_valid(buf)==YES)
{
switch(select)
{
/*每次输入都应该使用is_valid检查合法性,这里简单处理没有检查*/caseSELECT_OPTION_2:
printf("请输入第一个数:");
scanf("%d",&first);
printf("请输入第二个数:");
scanf("%d",&second);
printf("最大数为:%d\n",maxoftwo(first,second));
break;
caseSELECT_OPTION_3:
printf("请输入第一个数:");
scanf("%d",&first);printf("请输入第二个数:");
scanf("%d",&second);printf("请输入第三个数:");
scanf("%d",&third);
printf("最大数为:%d\n",maxofthree(first,second,third));
break;
caseSELECT_OPTION_QUIT:
printf("你已经退出程序\n");
break;
default:print_error();
}
}else{
print_error();
}
}while(select!=0);
return0;
}