首页 > 代码库 > 1185: 【入门】简单a+b

1185: 【入门】简单a+b

这道题花了20分钟(简单个屁!!!)

题目:

时间限制 : 1 Sec
内存限制 : 16 Mb
提交 : 3105
解决 : 1618

题目描述

做了,简单的a,b和的问题。但是,如果要求输入的情况不是a和b,而是整个加法表达式呢? 请想办法,计算加法表达式的结果。

输入

输入一个加法表达式,如1+2=。

输出

计算出输入表达式的正确结果

样例输入

1+2=

样例输出

3

完整的输入表达式。加号两边的数值属于int范围内,且第一个数可能为负数。

 

方法:

1、字符串读入。

2、用循环判断是否为一个数,然后记录。

3、两个数相加。

4、负数要考虑。

 

标程:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    char s[1900];
    int ans=0,ans1=0,an=1,an1;
    while ((s[an]=getchar())!=10)
    {
        an++;
    }
    for (int i=1;i<=an-1;i++)
    {
        if ((s[i]!=43)&&(s[i]!=‘-‘))ans=ans*10+s[i]-48;
        else
        {
            if (s[i]==43)
            {
                an1=i;
                i=an;    
            }

        }
    }
    if (s[1]==‘-‘)ans=0-ans;
    for (int i=an1+1;i<=an-1;i++)
    {
        if ((s[i]!=‘=‘)&&(s[i]!=‘-‘) )ans1=ans1*10+s[i]-48;
    }
    if (s[an1+1]==‘-‘)ans1=0-ans1;
    cout<<ans+ans1<<endl;
    return 0;
}

 

1185: 【入门】简单a+b