题目链接:http://ac.jobdu.com/problem.php?pid=1101
- 题目描述:
-
对于一个不存在括号的表达式进行计算
- 输入:
-
存在多种数据,每组数据一行,表达式不存在空格
- 输出:
-
输出结果
- 样例输入:
-
6/2+3+3*4
- 样例输出:
-
18
AC代码:
#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