A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhuai68 中级黑马   /  2015-9-10 14:43  /  1120 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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应该怎么写才是正确的,为什么我写的时候,出现警告。

5 个回复

倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽
回复 使用道具 举报
是不是在前面加个l就可以了?试试吧·?
回复 使用道具 举报
scanf("%lf",&f);double 类型的控制符是 %lf,因为一般我们认为3.14是float类型,其实是double,要在数字后面加f,才是float类型,3.14f
回复 使用道具 举报
double就是long float,scanf("%lf",&f); 就可以了
回复 使用道具 举报
scanf(%lf,&f),不过感觉听完如意大师的课,double类型用的很少
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马