黑马程序员技术交流社区

标题: switch实现计算器功能的小疑问 [打印本页]

作者: zhuai68    时间: 2015-9-10 14:43
标题: switch实现计算器功能的小疑问
  1. int main(int argc, const char * argv[]) {
  2.     //使用switch实现计算器功能
  3.     /*
  4.      让用户输入一个数
  5.      让用户再输入一个符号
  6.      让用户输入另外一个数
  7.      */
  8.    
  9.     float  a, b, c;
  10.     a=0,b=0,c=0;
  11.     char ch;//ch是运算符
  12.    
  13.     scanf("%f%c%f",&a,&ch,&b);//接受用户的输入的数字和运算符
  14.    
  15.     switch (ch) {     //判断运算符,并且进行运算,显示结果
  16.         case '+':
  17.             printf("%f", c= a+b);
  18.             break;
  19.         case '-':
  20.             printf("%f", c = a - b);
  21.             break;
  22.         case '*':
  23.             printf("%f", c = a * b);
  24.             break;
  25.         case '/':
  26.             printf("%f", c = a / b);
  27.             break;
  28.     }
  29.         return 0;
  30. }
复制代码


switch语句实现计算器功能,这是自己写的。我有个小问题,就是如果定义的变量是double类型的,scanf应该怎么写才是正确的,为什么我写的时候,出现警告。
作者: 123wwlwwl    时间: 2015-9-10 16:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: malong0517    时间: 2015-9-10 16:35
是不是在前面加个l就可以了?试试吧·?

作者: yumei9    时间: 2015-9-10 17:15
scanf("%lf",&f);double 类型的控制符是 %lf,因为一般我们认为3.14是float类型,其实是double,要在数字后面加f,才是float类型,3.14f
作者: ximdefangzh    时间: 2015-9-19 19:31
double就是long float,scanf("%lf",&f); 就可以了
作者: L503254118    时间: 2015-9-19 20:41
scanf(%lf,&f),不过感觉听完如意大师的课,double类型用的很少




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2