求教,我该如何修改我的代码
/*显示一个菜单,提供加减乘除选项,选择后程序要求输入2个数,并执行选择的操作*/#include <stdio.h>
char get_chioce (void);//选择部分
float chuli_fir(void);//第一个数字的处理
float chuli_sec(void);//第二个数字的处理
//char get_first(void);
float jiafa(void);//加法
float jianfa(void);//减法
float jchengfa(void);//乘法
float chufa(void);//除法
float first_n;//第一个数字
float second_n;//第二个数字
int main (void)
{
int chioce;//选择
while( (chioce = get_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");
c = getchar();
while( (c<'a' || c>'d') && c!='q')
{
printf("请输入a、b、c、d或q。\n");
c = getchar();
}
return c;
}//endof get_chioec()
float chuli_fir(void)//第一个数字的处理
{
float first_n;//第一个数字
printf("请输入第一个数字:");
while(scanf("%f", &first_n) != 1)
{
printf("这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:");
break;
}
return first_n;
}//endof chuli_fir()
float chuli_sec(void)//第二个数字的处理
{
float second_n;//第二个数字
printf("请输入第二个数字:");
if(second_n=0)
{
printf("请输入一个非零的数:");
scanf("%f", &second_n);
}
while(scanf("%f", &second_n) != 1)
{
printf("这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:");
break;
}
return second_n;
}//endof chuli_sec()
/*char get_first(void)
{
int ch;
ch = getchar();
while(getchar() != '\n')
continue;
return ch;
}//endof get_first()*/
float jiafa(void)//加法
{
chuli_fir();
chuli_sec();
printf("%.2f+%.2f=%.2f\n", first_n, second_n,
first_n+second_n);
}//endof jiafa()
float jianfa(void)//减法
{
chuli_fir();
chuli_sec();
printf("%.2f-%.2f=%.2f\n", first_n, second_n,
first_n-second_n);
}//endof jianfa()
float chengfa(void)//乘法
{
chuli_fir();
chuli_sec();
printf("%.2f*%.2f=%.2f\n", first_n, second_n,
first_n*second_n);
}//endof chengfa()
float chufa(void)//除法
{
chuli_fir();
chuli_sec();
printf("%.2f/%.2f=%.2f\n", first_n, second_n,
first_n/second_n);
}//endof chufa()
这段代码现在在3个问题上卡壳了,第一个是输入的数字无法代入程序,第二个是若输入错误的选项“请输入a、b、c、d或q。”这句话会重复2遍,第三个是若输入的不是数字就会把提示都说一遍,下图展示了3个错误的地方[local]1[/local]