두 가지 범주로 나누어 디지털 조작자에 각 리드 :
- '*'이면, 최후의 번호가 판독 전류 승산에 판독하고, 그 결과 원래의 위치에 저장되어있는 경우, '/'유사.
- 때문에 문제의 '+'연산자 우선 순위로 읽으면 함께 디지털 판독을 저장할 필요는 '-'마찬가지로, 디지털 스토리지의 역.
문자가 '\ n'을 읽기의 끝을 나타내는 때까지 읽기, 모든 저장된 번호가 요약 될 수있다.
#include <cstdio>
int main()
{
double num[100]; //存储数字的数组
while (scanf("%lf", &num[0]) == 1)
{
double ans = 0; //结果
char op = getchar(); //运算符
if (num[0] == 0 && op == '\n') //只有0
break;
int i = 0;
double temp;
while (scanf("%c %lf", &op, &temp) == 2)
{
if (op == '*')
num[i] *= temp;
else if (op == '/')
num[i] /= temp;
else if (op == '+')
num[++i] = temp;
else
num[++i] = -temp;
op = getchar(); //读取空格或者换行符
if (op == '\n') //换行符则结束
break;
}
while (i >= 0) //所有存储的数字相加
{
ans += num[i];
i--;
}
printf("%.2f\n", ans);
}
return 0;
}
계속.