|
发表于 2020-4-12 15:33:51
|
显示全部楼层
你的输入是什么啊?b为什么不是以%c输出啊?
输入格式一定要注意,scanf的第一个变量是数字,其前面可以有空白符(空格、Tab、回车),但是第二个变量是字符,所以运算符号一定要紧接着第一个数字进行输入,运算符号之后是第三个变量,第三个变量也是数字,其前面可以有空白符
- #include <stdio.h>
- int main()
- {
- long double a;
- char b;
- long double c;
- long double d;
-
- printf("请输入式子:");
- scanf("%Lf%c%Lf",&a,&b,&c);
- printf("a=%Lf ,b= %c ,c=%Lf\n",a,b,c);
- switch(b)
- {
- case '+': d = a + c;printf("加法结果是:%Lf\n",d);break;
- case '-': d = a - c;printf("减法结果是:%Lf\n",d);break;
- case '*': d = a * c;printf("乘法结果是:%Lf\n",d);break;
- case '/':
- if(c == 0)
- {
- printf("除数可不能为零啊!");
- }
- else
- {
- d = a / c;printf("除法结果是:%Lf\n",d);
- }
- break;
- default:printf("好好输行不行?");
- }
-
- printf("结果是:%Lf",d);
-
- return 0;
- }
复制代码
输入:<回车>12/ 3
注意:我的输入中在第一个数字之前有一个回车字符,而运算符号与第一个数字之间不能有任何其他符号,运算符号之后有若干个空格,然后才是第二个数字。
输出:- 请输入式子:a=12.000000 ,b= / ,c=3.000000
- 除法结果是:4.000000
- 结果是:4.000000
复制代码 |
|