小白求助
#include <stdio.h>int main()
{
double a,b;
char ch;
printf("请输入式子:");
scanf("%f %c %f",&a,&ch,&b);
switch(ch)
{
case '+':printf("结果是:%f\n",a+b);break;
case '-':printf("结果是:%.2f\n",a-b);break;
case '*':printf("结果是:%.2f\n",a*b);break;
case '/':{
if(b <=0.00000001)
printf("很遗憾,除数不能为0!\n");
else
printf("结果是:%.2f",a/b);}break;
}
return 0;
}
为什么这个double a,b运算结果为0 转换成float a,b 就运算正常 scanf里面输入double必须要用%lf,printf函数double可以用%f也可以用%lf
你这里把scanf里面的%f改为%lf就可以正常计算了 浮点输出与双精度输出的格式是不一样的,前者是:%f,后者是:%ld (注意:是大写字母L的小写字母,而不是数字 1)
页:
[1]