键盘输入三个整数和两个算术运算组成的表达式,计算结果。 运算符包括:加+,减-乘*,除/
输入格式:
三个整数,两个运算符,组成算数表达式,输入的字符之间没有空格
输出格式:
在表达式的后边输出=计算结果
输入样例:
6+311
结尾无空行
输出样例:
6+311=39
结尾无空行
#include <stdio.h>
double calculate(double a, char op, double b)
{
switch (op)
{
case '+':
return a + b;
case '-':
return a - b;
case '*':
return a * b;
case '/':
return a / b;
}
return 0;
}
int main()
{
double a, b, c, r;
char op1, op2;
scanf("%lf%c%lf%c%lf", &a, &op1, &b, &op2, &c);
switch (op1)
{
case '+':
case '-':
switch (op2)
{
case '+':
case '-':
r = calculate(a, op1, b);
r = calculate(r, op2, c);
break;
case '*':
case '/':
r = calculate(b, op2, c);
r = calculate(a, op1, r);
break;
}
break;
case '*':
case '/':
r = calculate(a, op1, b);
r = calculate(r, op2, c);
break;
}
printf("%lg%c%lg%c%lg=%lg", a, op1, b, op2, c, r);
return 0;
}
#include <stdio.h>
int main()
{
float a,b;
char op;
END:printf("请输入算式:");
scanf("%f%c%f",&a,&op,&b);
switch(op)
{
case '+':
printf("%g+%g=%g\n",a,b,a+b);break;
case '-':
printf("%g-%g=%g\n",a,b,a-b);break;
case '*':
printf("%g*%g=%g\n",a,b,a*b);break;
case '/':
if (0==b)
printf("除数不能为零!\n");
else
printf("%g/%g=%g\n",a,b,a/b);
break;
default:
printf("运算符错误!\n");
}
char ch;
printf("是否继续运算(Y/N or y/n):");
scanf("%1s",&ch); //%c改成%1s
if(ch=='Y'||ch=='y')
goto END;
else
printf("over!");
return 0;
}