#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,即为两个小数相加的结果。 需要注意的是,代码中并没有对输入的合法性进行检查,比如输入是否为合法的小数形式。在实际应用中,需要根据具体情况进行相应的输入验证。

C++ 字符串加法计算器:实现两个小数相加

原文地址: https://www.cveoy.top/t/topic/pMJA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录