hd 1753 大明A+B
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
string a,b,a1,b1;
int l1,l2,i,wei,f;
while(cin>>a>>b)
{
string c,d;
wei=0;
i=a.find('.');
// cout<<i<<endl;
if(i!=-1)
a1=a.substr(i);
else
a1="";
i=b.find('.');
// cout<<i<<endl;
if(i!=-1)
b1=b.substr(i);
else
b1="";
// cout<<a1<<' '<<b1<<endl;
l1=a1.length();
l2=b1.length();
// cout<<l1<<' '<<l2<<endl;
if(l1>l2)
{
for(i=0;i<l1-l2;i++)
{
b+="0";
}
}
if(l1<l2)
{
for(i=0;i<l2-l1;i++)
{
a+="0";
}
}
// cout<<a<<' '<<b<<endl;
for(i=a.length()-1;i>=0;i--)
{
// cout<<a[i]<<' '<<b[i]<<endl;
if(a[i]!='.'&&b[i]!='.')
{
c+=(a[i]-'0'+b[i]-'0'+wei)%10+'0';
wei=(a[i]-'0'+b[i]-'0'+wei)/10;
}
if(a[i]=='.'||b[i]=='.')
{
c+='.';
}
}
if(wei)
c+='1';
// cout<<c<<endl;
f=0;
if(c.find('.')!=-1)
{
for(i=0;i<c.length();i++)
{
if(f==0&&c[i]=='0')
{
f=0;
}
if(c[i]!='0')
{
if(c[i]=='.'&&f==0)
continue;
else
d+=c[i];
f=1;
}
if(c[i]=='0'&&f==1)
d+=c[i];
if(f==0&&c[i]=='.')
{
f=1;
}
}
for(i=d.length()-1;i>=0;i--)
cout<<d[i];
}
else
{
for(i=c.length()-1;i>=0;i--)
cout<<c[i];
}
cout<<endl;
}
return 0;
}
哪里错了