这段代码要进行四则运算,但是除法部分所得结果不正确,请问代码哪里有问题
#include <stdio.h>int main()
{
float a,b;//两个操作数
char i;//运算符
printf("请输入式子:");
scanf("%f %c %f",&a,&i,&b);
if(i=='+'){
printf("结果是:%.2f",a+b);
}
else if(i=='-'){
printf("结果是:%.2f",a-b);
}
else if(i=='*'){
printf("结果是:%.2f",a*b);
}
else if(i=='/'){
if(b=0){
printf("很遗憾,除数不能为零!");
}
else{
printf("%.2f",a/b);
}
}
return 0;
} 问题出在if语句判断除数是否为零的地方。在判断条件中使用了赋值运算符"="而不是相等运算符"==",导致判断始终为真。正确的代码如下:
#include <stdio.h>
int main()
{
float a, b;// 两个操作数
char i; // 运算符
printf("请输入式子:");
scanf("%f %c %f", &a, &i, &b);
if (i == '+') {
printf("结果是:%.2f", a + b);
}
else if (i == '-') {
printf("结果是:%.2f", a - b);
}
else if (i == '*') {
printf("结果是:%.2f", a * b);
}
else if (i == '/') {
if (b == 0) { // 注意这里使用了相等运算符"=="
printf("很遗憾,除数不能为零!");
}
else {
printf("%.2f", a / b);
}
}
return 0;
}
这样修改后,再输入除法运算时,就能够正确判断除数是否为零并给出相应的提示。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 if (b = 0)当然会出问题了,打代码小心一些,避免这种低级错误
页:
[1]