|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是s1e12的课后作业的一道动动手题目,甲鱼老师使用了一个类似于_Bool的一个库(初学者,还不太懂 ),代码如下:
- #include <stdio.h>
- #include <stdbool.h>
- int main()
- {
- float op1, op2;
- char ch;
- float result;
- bool invalid = false;
- printf("请输入式子:");
- scanf("%f %c %f", &op1, &ch, &op2);
- switch (ch)
- {
- case '-': op2 = -op2; // no break
- case '+': result = op1 + op2; break;
- case '*': result = op1 * op2; break;
- case '/':
- if (op2 != 0)
- {
- result = op1 / op2;
- break;
- }
- else
- {
- invalid = true;
- break;
- }
- }
- if (invalid)
- {
- printf("除数不能为零!\n");
- }
- else
- {
- printf("结果是:%.2f\n", result);
- }
- return 0;
- }
复制代码
我理解了甲鱼老师代码的含义,但是我是一个初学者,还没学那么深,所以我想用学过的知识来实现这一程序,用一个变量来代替_Bool, 我的代码是这样的:
- #include <stdio.h>
- int main()
- {
- double a,b,d,i;
- char c;
-
- printf("请输入式子:");
- scanf("%f %c %f",&a,&c,&b);
-
- switch(c)
- {
- case '-': b = -b, i = 1;//no break
- case '+': d = a + b, i = 1;break;
- case '*': d = a * b, i = 1;break;
- case '/':
- if(b != 0)
- {
- d = a / b;
- i = 1;
- break;
- }
- else
- {
- i = 0;
- break;
- }
- }
- if(i)
- {
- printf("结果为%f",d);
- }
- else
- {
- printf("除数不能为0");
- }
-
- return 0;
- }
复制代码
结果就出了bug ,求大佬解答
- #include <stdio.h>
- int main()
- {
- double a,b,d,i;
- char c;
- printf("请输入式子:");
- //scanf("%f %c %f",&a,&c,&b);
- scanf("%lf %c %lf",&a,&c,&b);
- switch(c)
- {
- case '-': b = -b, i = 1;//no break
- case '+': d = a + b, i = 1;break;
- case '*': d = a * b, i = 1;break;
- case '/':
- if(b != 0)
- {
- d = a / b;
- i = 1;
- break;
- }
- else
- {
- i = 0;
- break;
- }
- }
- if(i)
- {
- //printf("结果为%f",d);
- printf("结果为%lf",d);
- }
- else
- {
- printf("除数不能为0");
- }
- return 0;
- }
复制代码
|
|