K小剑K 发表于 2020-10-18 10:48:52

小白求助

#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 就运算正常

yuxijian2020 发表于 2020-10-19 17:13:40

scanf里面输入double必须要用%lf,printf函数double可以用%f也可以用%lf
你这里把scanf里面的%f改为%lf就可以正常计算了

乐乐学编程 发表于 2020-10-19 23:54:36

浮点输出与双精度输出的格式是不一样的,前者是:%f,后者是:%ld (注意:是大写字母L的小写字母,而不是数字 1)
页: [1]
查看完整版本: 小白求助