#include "stdafx.h"
#include <stdio.h>
#define SELECT_OPTION_2 2
#define SELECT_OPTION_3 3
#define SELECT_OPTION_QUIT 0
#define buffer_len 6
#define YES 0
#define NO -1
void printf_input();
void print_info();
void print_error();
int maxoftwo(int a, int b);
int maxofthree(int a, int b, int c);
int is_valid(const char *buf);
void print_info()
{
printf("[2]求兩個數的最大值\n");
printf("[3]求三個數的最大值\n");
printf("[0]退出\n\n");
}
void printf_input()
printf("請輸入你的選擇2/3/0: ");
void print_error()
printf("輸入錯誤請重新輸入\n");
//print_info();
int maxoftwo(int a, int b)
return a > b ? a :b;
int maxofthree(int a, int b, int c)
return maxoftwo(a, b) > c ? maxoftwo(a, b) : c;
int is_valid(const char *buf)
int i;
char s[7];
for(i=0; i <= buffer_len; i++)
if (!(buf[i] >="0" && buf[i] <= "9"))
{ break; }
//__int64 value = //應判斷 int 的最大最小值是否超出範圍
return i == buffer_len ? YES : NO;
int main(int argc, char* argv[])
int select=0;
int first, second, third;
char buf[7];
print_info();
do
printf_input(); scanf("%s",buf);
if(is_valid(buf) == YES)
switch( select )
/* 每次輸入都應該使用is_valid檢查合法性,這裡簡單處理沒有檢查 */case SELECT_OPTION_2:
printf("請輸入第一個數:");
scanf("%d",&first);
printf("請輸入第二個數:");
scanf("%d",&second);
printf("最大數為:%d\n",maxoftwo(first, second));
break;
case SELECT_OPTION_3:
scanf("%d",&first); printf("請輸入第二個數:");
scanf("%d",&second); printf("請輸入第三個數:");
scanf("%d",&third);
printf("最大數為:%d\n",maxofthree(first, second, third));
case SELECT_OPTION_QUIT:
printf("你已經退出程式\n");
default: print_error();
} else {
print_error();
}while(select != 0);
return 0;
#include "stdafx.h"
#include <stdio.h>
#define SELECT_OPTION_2 2
#define SELECT_OPTION_3 3
#define SELECT_OPTION_QUIT 0
#define buffer_len 6
#define YES 0
#define NO -1
void printf_input();
void print_info();
void print_error();
int maxoftwo(int a, int b);
int maxofthree(int a, int b, int c);
int is_valid(const char *buf);
void print_info()
{
printf("[2]求兩個數的最大值\n");
printf("[3]求三個數的最大值\n");
printf("[0]退出\n\n");
}
void printf_input()
{
printf("請輸入你的選擇2/3/0: ");
}
void print_error()
{
printf("輸入錯誤請重新輸入\n");
//print_info();
}
int maxoftwo(int a, int b)
{
return a > b ? a :b;
}
int maxofthree(int a, int b, int c)
{
return maxoftwo(a, b) > c ? maxoftwo(a, b) : c;
}
int is_valid(const char *buf)
{
int i;
char s[7];
for(i=0; i <= buffer_len; i++)
{
if (!(buf[i] >="0" && buf[i] <= "9"))
{ break; }
}
//__int64 value = //應判斷 int 的最大最小值是否超出範圍
return i == buffer_len ? YES : NO;
}
int main(int argc, char* argv[])
{
int select=0;
int first, second, third;
char buf[7];
print_info();
do
{
printf_input(); scanf("%s",buf);
if(is_valid(buf) == YES)
{
switch( select )
{
/* 每次輸入都應該使用is_valid檢查合法性,這裡簡單處理沒有檢查 */case SELECT_OPTION_2:
printf("請輸入第一個數:");
scanf("%d",&first);
printf("請輸入第二個數:");
scanf("%d",&second);
printf("最大數為:%d\n",maxoftwo(first, second));
break;
case SELECT_OPTION_3:
printf("請輸入第一個數:");
scanf("%d",&first); printf("請輸入第二個數:");
scanf("%d",&second); printf("請輸入第三個數:");
scanf("%d",&third);
printf("最大數為:%d\n",maxofthree(first, second, third));
break;
case SELECT_OPTION_QUIT:
printf("你已經退出程式\n");
break;
default: print_error();
}
} else {
print_error();
}
}while(select != 0);
return 0;
}