#include"stdafx.h"
#include<stdio.h>
#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;
}