题目链接:http://ac.jobdu.com/problem.php?pid=1101
-
题目描述:
-
对于一个不存在括号的表达式进行计算
-
输入:
-
存在多种数据,每组数据一行,表达式不存在空格
-
输出:
-
输出结果
-
样例输入:
-
6/2+3+3*4
-
样例输出:
-
18
#include <stdio.h>
int main()
{
double a,b,resault; //resault里面存放运算结果
char sign; //存放运算符
while((sign=getchar())!=EOF) //读取一行的第一个字符,如果不是结束符则进行循环
{
resault=0;
ungetc(sign, stdin); //进入循环体,则说明第一个字符不是结束符,需要把读入的字符送回缓冲区原位置
scanf("%lf",&a); //此时按照double读入
while(scanf("%c",&sign)!=EOF&&sign!='\n')
{
scanf("%lf",&b);
switch(sign)
{
case '+':
{
resault+=a;
a=b;
break;
}
case '-':
{
resault+=a;
a=-b;
break;
}
case '*':
{
a*=b;
break;
}
case '/':
{
a/=b;
break;
}
}
}
printf("%.0lf\n",resault+a); //整型输出
}
return 0;
}
PS:此题如若定义为整形运算也能AC