如何正确编码此函数,以便它计算 int 的每个数字的总和

How to correctly code this function such that it calculates the sum of each digit of the int?

本文关键字:int 数字 计算 编码 何正确 函数      更新时间:2023-10-16

我编写了一个将 5 位邮政编码转换为条形码的函数。但是,我还需要计算每个数字的总和才能继续最后一步。我试图这样做,但Visual Studio说变量总和未初始化。我能看出我做错了什么,但我不知道为什么。有人可以解释原因并提供一些建议来纠正我的代码吗?感谢您的回复。

void bar_code(int zip)
{
    int sum;
    for (int number = 0; number <= 4; number ++)
    {
        int d = zip / pow( 10 , 4 - number);
        if (d == 0) { cout << "||:::"; };
        if (d == 1) { cout << ":::||"; };
        if (d == 2) { cout << "::|:|"; };
        if (d == 3) { cout << "::||:"; };
        if (d == 4) { cout << ":|::|"; };
        if (d == 5) { cout << ":|:|:"; };
        if (d == 6) { cout << ":||::"; };
        if (d == 7) { cout << "|:::|"; };
        if (d == 8) { cout << "|::|:"; };
        if (d == 9) { cout << "|:|::"; };
        sum += d;
        int update = pow(10, 4 - number);
        zip = zip % update;

    }
    if (sum == 0) { cout << "||:::"; };
    if (sum == 1) { cout << ":::||"; };
    if (sum == 2) { cout << "::|:|"; };
    if (sum == 3) { cout << "::||:"; };
    if (sum == 4) { cout << ":|::|"; };
    if (sum == 5) { cout << ":|:|:"; };
    if (sum == 6) { cout << ":||::"; };
    if (sum == 7) { cout << "|:::|"; };
    if (sum == 8) { cout << "|::|:"; };
    if (sum == 9) { cout << "|:|::"; };
}

您从未初始化过sum 。Value 在尝试向其添加d之前,使用 int sum{}int sum = x 对其进行初始化。