c++ - C++:我的程序编译完美但无法运行
问题描述
我正在编写一个小程序来模拟简单的算术。我的问题是我的程序将编译(在 Linux 机器上)并开始运行,但没有生成输出也没有完成。
我曾尝试多次更改 stoi 函数(用于在 Arithmetic_ADD 函数内的 for 循环中发出错误),并且我试图调试程序中的一些点。
#include <string>
#include <iostream>
#include <math.h>
using namespace std;
string Add_Padding(string val, int padding_amount) {
string result = "";
for (int i = 0; i < padding_amount; i++) {
result += "0";
}
return result.append(val);
}
string *Auto_Padding(string val1, string val2) {
int val1L = val1.length();
int val2L = val2.length();
if (val1L > val2L) {
val2 = Add_Padding(val2, val1L - val2L);
val1.insert(0, "0");
val2.insert(0, "0");
static string to_return[3] = {val1, val2, to_string(val1L)};
return to_return;
}
else if (val1L < val2L) {
val1 = Add_Padding(val1, val2L - val1L);
val1.insert(0, "0");
val2.insert(0, "0");
static string to_return[3] = {val1, val2, to_string(val2L)};
return to_return;
}
else {
val1.insert(0, "0");
val2.insert(0, "0");
static string to_return[3] = {val1, val2, to_string(val1L)};
return to_return;
}
}
string Arithmetic_Add(string tempVal1, string tempVal2) {
string *values = Auto_Padding(tempVal1, tempVal2);
string val1(values[0]);
string val2(values[1]);
int loop_amount = stoi(values[2]) + 1;
int carry = 0;
int currentResult;
int tempVar;
string result = "";
for (int i = loop_amount; -1 < i < loop_amount; i--) {
currentResult = carry + stoi(val1) + stoi(val2);
if (currentResult > 9) {
carry = currentResult % 10;
tempVar = floor(currentResult / 10);
result.insert(0, to_string(tempVar));
}
else {
carry = 0;
result.insert(0, to_string(currentResult));
}
}
return result;
}
int main() {
cout << Arithmetic_Add("21000", "1000");
cout << endl;
cout << flush;
return 0;
}
解决方案
推荐阅读
- python - 如何让我的函数处理异常?
- r - igraph,创建网络图
- python - 用单个标签替换字符串中与列表中的条目匹配的任何单词(python)
- sql - 将两个不同的表与公共列上的公共第三个表连接起来
- python - 无法在 python 3.x 中为蒙特卡洛模拟生成概率?
- bash - 通过 master 双重 ssh 到工作主机并运行文件检查
- python - ValueError:matmul 尝试将 sklearn 的线性回归器拟合到 pandas 数据帧实例时
- node.js - 从 S3 读取 ZIP 存档,并将未压缩版本写入新存储桶
- vue.js - 如何从 vue 中的特定 getter 中检索数据?
- python - 带有字典默认值的 typing.NamedTuple