首页 > 解决方案 > 输出值是一个不正确且不随输入变化而变化的大整数

问题描述

我正在编写一个代码,用户将输入三个数字,输出将是数字和第一个数字之间的数字之和,它们的数字之和在第二个和第三个数字之间,当我尝试测试代码时,输​​出是不同输入时不变且不正确。

#include <iostream>

using namespace std;

int main()
{
    int m,nm,n,a,b,sum,subsum=0;
    cout << "Enter the three numbers:" << endl;
    cin >> n >> a >> b;
    if(a<=b){
        for (int i=1;i<=n;i++){
            nm=i;
            subsum=0;
            while(nm!=0){
                m=nm%10;
                nm=nm/10;
                subsum=subsum+m;
            }
            if(subsum>=a && subsum<=b){
                sum=sum+subsum;
            }
        }
        cout << sum << endl;
    }

    return 0;
}

标签: c++

解决方案


您没有初始化变量sum,在某些 linux 系统上,变量将被初始化为任意值。请添加此行

sum = 0;

if声明之前。


推荐阅读