【算法笔记第6.3节 string 】问题 A: 字符串处理(未解决)

题目描述

读入两个字符串,字符串除了数字还可能包括 '—'、'E'、'e'、'.',相加之后输出结果,如果是浮点型,要求用科学计数法表示(最多包含10个有效数字)。

输入

输入包含多组测试数据。

每组输入占两行,每行一个字符串,测试数据保证字符串的构成严格按照题目中的描述。

输出

输出两个数字相加的结果,每组输出占一行。

样例输入

34.56
2.45e2

样例输出

2.7956e2

答案错误50%

#include
#include
#include
#include
#include
using namespace std;
/*
 - :为负数
E/e:为10的多少次方
.  :为小数
*/
string change(string s, int &e)
{
    int k=0;
    while(k0&&(s[k]!='e'&&s[k]!='E'))
          k++;
    //去掉e
    if(kminn)
    {
        s+='0';
        e--;
    }
    return s;
}
long long int change_n(string s)
{
    int n = 0, k=0;
    while(k>s1>>s2)
    {
        int f1=1, f2=1, e1=0, e2=0;
        f1 = check(s1);//记录符号
        f2 = check(s2);

        s3 = deal_e(s1, e1);//去掉e
        s4 = deal_e(s2, e2);

        s5 = change(s3, e1);
        s6 = change(s4, e2);

        int minn = min(e1, e2);//向小的看齐
        s5 = ty(s5, e1, minn);
        s6 = ty(s6, e2, minn);

        long long int n1, n2;
        n1  = change_n(s5);
        n2  = change_n(s6);

        //cout<

 

你可能感兴趣的:(【算法笔记】)