#include
using namespace std;
int main() {
string a, b, c, d, ans;
int x, y, z = 0;
scanf("%s.%s%s.%s", &a, &b, &c, &d);
for (int i = 1; i <= a.size() || i <= c.size(); i++) {
if (i > a.size()) x = 0;
else x = a[a.size() - i] - '0';
if (i > c.size()) y = 0;
else y = c[c.size() - i] - '0';
ans[max(a.size(), b.size()) + 1 - i] = (x + y + z) % 10 + '0';
z = (x + y + z) / 10;
}
cout << ans;
return 0;
}
这段代码是一个简单的字符串加法计算器。它接受四个字符串作为输入,将两个小数相加并输出结果。
代码中定义了四个字符串变量a、b、c和d,用于存储输入的字符串。然后使用scanf函数从输入中读取字符串,并按照指定格式将其分别存储在a、b、c和d中。
接下来,使用一个循环对两个小数的每一位进行相加。循环从1开始,直到a或c的长度较大的一方结束。
在每一次循环中,通过判断当前位数是否超过字符串的长度,将x和y的值赋为对应位置的数字。然后将x、y和前一位的进位z相加,并计算当前位的结果,将其存储在ans中。
最后,使用cout输出ans,即为两个小数相加的结果。
需要注意的是,代码中并没有对输入的合法性进行检查,比如输入是否为合法的小数形式。在实际应用中,需要根据具体情况进行相应的输入验证。