帮我看看这个程序哪里错了

来源:百度知道 编辑:UC知道 时间:2024/06/05 07:51:39
# include <stdio.h>
# include <math.h>
void main()
{
float date1,date2,result;
char op,c;
do{
printf("please input :date1 op date2.\n");
scanf("%f%c%f",&date1,&op,&date2);
switch(op)
{
case '+':result=date1+date2;printf("The result is %f.\n",result);break;
case '-':result=date1-date2;printf("The result is %f.\n",result);break;
case '*':result=date1*date2;printf("The result is %f.\n",result);break;
case '/':
if (fabs(date2)<=1e-6)
printf("Wrong!Division by zero!\n");
else
{ result=date1/date2;
printf("The result is %f.\n",result);}
break;
default:printf("error!\n");
}
printf("Do you want to continue:Y or N?\n");
scanf("%c",&c);}
while(c=='Y');
}

赋值语句有问题:
printf("please input :date1 op date2.\n");
scanf("%f%c%f",&date1,&op,&date2);

你输入的时候最好一个一个来,特别是中间的符号,当你输入第一个字符型数据的时候再输入第二个,最后输入符号。你改改看看,虽然这样的式子不够直观。

能看出你做的程序是个运算式。不错。
结构框架很好。

兄弟,你自己看看,你的大括号是否匹配。特别是你给C赋值的语句后面的大括号,是do的呢,还是switch的呢?