akoj-1162-计算表达式
|
计算表达式 Time Limit:1000MS Memory Limit:65536K Description 对于一个不存在括号的表达式进行计算 Input 存在多种数据,每组数据一行,表达式不存在空格 Output 输出结果 Sample Input
6/2+3+3*4
Sample Output
18
Source [Submit]
[Go Back] [Status]
[Discuss] #include <stdio.h>
#include <string.h>
/*此题关键对数的处理,遇到加减就增加个变量储存 ,
*遇到‘-’还需要把这个数转换为其相反数储存
*/
int main()
{
char temp;
int x, a[200], i, sum = 0;
memset(a, 0, sizeof(a));
while (~scanf("%d", &x))
{
sum = 0;
i = 0;
a[i] = x;
while ( ~scanf("%c", &temp) && temp != '\n' )
{
scanf("%d", &x);
switch(temp)
{
case '*': a[i] *= x; break;//遇到乘除就当成一个数处理
case '/': a[i] /= x; break;
case '+': a[++i] = x; break;
case '-': a[++i] = -x; break;
}
}
for ( i; i>=0; i--) {
sum += a[i];
}
printf("%d\n", sum);
}
} |

浙公网安备 33010602011771号