问题链接:CCF NOI1059 表达式求值。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
计算仅含有加法计算的表达式的值。该表达式长度不超过250,中间没有空格与括号,并且计算结果在整数范围内。
输入
输入表达式。
输出
输出表达式的值。
样例输入
12+23+21
样例输出
56
数据范围限制
问题分析
简单的字符流处理问题,直接输入计算即可。
程序说明
用函数scanf()读入整数。
用函数getchar()读入加运算符。
这里给出了两个程序,后一个是纯字符流处理的程序。
- 没有加运算符(+)意味着表达式结束。
- 用函数scanf()读入整数。
参考链接:(略)。
100分通过的C语言程序之一:
#include <stdio.h>
int main(void)
{
int val, sum;
char c;
sum = 0;
for(;;) {
scanf("%d", &val);
sum += val;
if((c = getchar()) != '+')
break;
}
printf("%d\n", sum);
return 0;
}
100分通过的C语言程序之二:
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int val, sum;
char c;
sum = 0;
val = 0;
c = getchar();
for(;;) {
while(isdigit(c)) {
val = val * 10 + c - '0';
c = getchar();
}
sum += val;
val = 0;
if(c != '+')
break;
c = getchar();
}
printf("%d\n", sum);
return 0;
}