CCF NOI1059 表达式求值

问题链接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
", 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
", sum);

    return 0;
}



原文地址:https://www.cnblogs.com/tigerisland/p/7563894.html