题目:
根据题意可以写出的代码:double a,b //操作数
char c //预算符
以及scanf函数
注意scanf函数这里也有点小坑哦
先说一下正确的:scanf("%lf%c%lf", &a,&c,&b)
再看一下错误的:
所以说如果题目有给了顺序尽量按题目的来,不要自行修改排序
接下来就是判断
首先判断符号(顺序大家看自己不必与我一样)
题意要求的符号是+-*/
所以我们就先可以写第一个判断语句:
if(c!='+'&&c!='-'&&c!='*'&&c!='/')//注意如果这里必须是&&而不是||,这四个条件必须同时满足
{
printf("Invalid operation!\n");
}
else
{
if(c=='+')
{
printf("%.4f+%.4f=%.4f\n",a,b,a+b);
}
else if(c=='-')
{
printf("%.4f-%.4f=%.4f\n",a,b,a-b);
}
else if(c=='*')
{
printf("%.4f*%.4f=%.4f\n",a,b,a*b);
}
else if(c=='/')//注意有些偷懒的同学会将这个if给省略掉
{
if(b==0.0)
{
printf("Wrong!Division by zero!\n");
}
else {
printf("%.4f/%.4f=%.4f\n",a,b,a/b);
}
}
}
补充:如果将if(c=='/')只留else会怎样,见下图
如果真需要删可以选择删掉else
最后给大家呈现一下完整代码
#include <stdio.h>
int main() {
char c;
double a, b;
while (scanf("%lf%c%lf", &a,&c,&b) != EOF)
{
if(c!='+'&&c!='-'&&c!='*'&&c!='/')
{
printf("Invalid operation!\n");
}
else {
if(c=='+')
{
printf("%.4f+%.4f=%.4f\n",a,b,a+b);
}
else if(c=='-')
{
printf("%.4f-%.4f=%.4f\n",a,b,a-b);
}
else if(c=='*')
{
printf("%.4f*%.4f=%.4f\n",a,b,a*b);
}
else if(c=='/')
{
if(b==0.0)
{
printf("Wrong!Division by zero!\n");
}
else {
printf("%.4f/%.4f=%.4f\n",a,b,a/b);
}
}
}
}
return 0;
}
如有疑问欢迎大家在评论区留言