求助C语言

#include"stdio.h"
#include"math.h"

main()
{float a,b,c;
char d;
scanf("%f,%c,%f",a,d,b);
if(d='+')
c=a+b;
printf("%f+%f=%f",a,b,c);
if(d='-')
c=a-b;
printf("%f-%f=%f",a,b,c);
if(d='*')
c=a*b;
printf("%f*%f=%f",a,b,c);
if(d='/')
c=a/b;
printf("%f/%f=%f",a,b,c);
getch();
}

为什么编译成功但是不能输入数字?

第1个回答  2011-11-13
scanf的format参数用法还是比较复杂的,你代码中的
scanf("%f,%c,%f",a,d,b);
的合法输入应该是:浮点数 + 逗号 + 任意字符 + 逗号 + 浮点数。按照你的意图,应该是:
scanf("% f%c %f",a,d,b);
比较好。

另外, if判断错误了,应该用==
第2个回答  2011-11-13
scanf("%f,%c,%f",a,d,b);应该是scanf("%f,%c,%f",&a,&d,&b);
第3个回答  2011-11-13
有好杜鸥错误啊~~~改成这样就可以了~
#include"stdio.h"
#include"math.h"

main()
{
float a,b,c;
char d;
scanf("%f%c%f",&a,&d,&b);
if(d=='+')
{
c=a+b;
printf("%f+%f=%f\n",a,b,c);
}
if(d=='-')
{
c=a-b;
printf("%f-%f=%f\n",a,b,c);
}
if(d=='*')
{
c=a*b;
printf("%f*%f=%f\n",a,b,c);
}
if(d=='/')
{
c=a/b;
printf("%f/%f=%f\n",a,b,c);
}
}本回答被提问者采纳
第4个回答  2011-11-13
如果编译成功了,还不能的话,有可能是软件的问题吧!
第5个回答  2020-01-13
相似回答