首页 > 解决方案 > 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;
}

标签: c++

解决方案


推荐阅读