http://bbs.bccn.net/viewthread.php?tid=433229&page=1&extra=#pid2419992
/*显示一个菜单,提供加减乘除选项,选择后程序要求输入2个数,并执行选择的操作*/
#include <stdio.h>
char get_chioce ();//选择部分
void chuli_fir();//第一个数字的处理
void chuli_sec();//第二个数字的处理
//char get_first(void);
void jiafa();//加法
void jianfa();//减法
void chengfa();//乘法
void chufa();//除法
float first_n;//第一个数字
float second_n;//第二个数字
int main ()
{
char chioce; //改为char,要对应变量的类型
chioce=get_chioce();//选择
while( (chioce!= 'q'))
{
switch(chioce)
{
case 'a':jiafa();
break;
case 'b':jianfa();
break;
case 'c':chengfa();
break;
case 'd':chufa();
break;
}
}//endof while( (chioce = get_chioce()) != 'q')
printf("再见!\n");
return 0;
}//endof mian()
char get_chioce(void)
{
char c;
printf("请选择你的操作:\n");
printf("a.加法\tb.减法\n");
printf("c.乘法\td.除法\n");
printf("q.退出\n");
printf("请输入a、b、c、d或q:");
scanf("%c", &c);
<span style="BACKGROUND-COLOR: #ff0000">getchar(); //作用同楼上的一样,消除缓存,记住对于字符的输入问题,容易将换行键错误的当作字符变量
</span> while( (c<'a' || c>'d') && c!='q')
{
printf("请输入有效的a、b、c、d或q:");
scanf("%c", &c);
<span style="BACKGROUND-COLOR: #ff0000">getchar(); //消除缓存
}
</span> return c;
}//endof get_chioec()
void chuli_fir()//第一个数字的处理
{
printf("请输入第一个数字:");
while(scanf("%f", &first_n) != 1)
{
printf("这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:");
break;
}
}//endof chuli_fir()
void chuli_sec()//第二个数字的处理
{
printf("请输入第二个数字:");
while(scanf("%f", &second_n) != 1)
{
printf("这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:");
}
}//endof chuli_sec()
/*char get_first(void)
{
int ch;
ch = getchar();
while(getchar() != '\n')
continue;
return ch;
}//endof get_first()*/
void jiafa()//加法
{
chuli_fir();
chuli_sec();
printf("%.2f+%.2f=%.2f\n", first_n, second_n,first_n+second_n);
}//endof jiafa()
void jianfa()//减法
{
chuli_fir();
chuli_sec();
printf("%.2f-%.2f=%.2f\n", first_n, second_n,
first_n-second_n);
}//endof jianfa()
void chengfa()//乘法
{
chuli_fir();
chuli_sec();
printf("%.2f*%.2f=%.2f\n", first_n, second_n,
first_n*second_n);
}//endof chengfa()
void chufa()//除法
{
chuli_fir();
chuli_sec();
<span style="BACKGROUND-COLOR: #ff0000">while(second_n==0){ printf("请重新输入第二个数字:");scanf("%f", &second_n);}//稍做改动
</span> printf("%.2f/%.2f=%.2f\n", first_n, second_n, first_n/second_n);
}//endof chufa()