代码在下面,我设置的是随便输点什么,不符合要求的话应该输出error,但是如果是第一次输错了,会报错,但接下来按什么键都显示error,如果是第一次输对了,第二次输错了,那么后面还是一直会报错,能帮我改下程序吗?
#include
#include
void main()
{
float jisuan(float *a,char *c,float*b);
/* 对jisuan函数进行声明 */
float a,b;
float jieguo,i;
char c,d;
while(1)
{
printf("请输入计算式\n");
for(i=1;i<10000;i++)
{
scanf("%f%c%f",&a,&c,&b);
jieguo=jisuan(&a,&c,&b);
/* 调用jisuan函数 */
printf("计算结果为:%g%c%g=%f\n",a,c,b,jieguo);
printf("是否要继续计算? 直接输入算式:继续; N:退出;\n");
d=getch();
if(d=='n'||d=='N')
break;
}
break;
}
}
float jisuan(float*a,char *c,float *b)
/* 定义jisuan函数 */
{
float jieguo=0;
switch(*c)
{
case '+':jieguo=*a+*b;
break;
case '-':jieguo=*a-*b;
break;
case '*':jieguo=*a**b;
break;
case '/':
if(*b==0)
printf("error");
/* 如果被除数为零,则输出“error” */
else jieguo=*a/(*b);
break;
default:printf("error");
/* 如果输入算式有误,则输出“error” */
}
return(jieguo);
/* 将计算值返回主函数 */
}