使用 cin 的未初始化局部变量

uninitialized local variable with cin use

我正在编写这段代码(用 C++ 编写),我已经完成了,但是当我在关于变量 y 和 m 的 for 循环中使用它们时,第 19 行有 2 个错误,说它们是未初始化的局部变量。我不明白这是怎么可能的,因为我在开始时将它们声明为 int 并且当用户在 cin 中输入时它们的值被分配。

#include <iostream>
#include <string>
#include <cmath>
#include <math.h>
#include <vector>

using namespace std;

int main()
{
    int a, b, n, l = 0;

    cin >> a, b, n;

    for (int i = 0; i < 20; i++)
    {
        for (int j = 0; j < 20; j++)
        {
            if (l < (i*a + j*b) && (i*a + j*b) <= n)
                l = i*a + j*b;
        }
    }

    cout << l;

    return 0;
}

我无法对此进行测试,但 Multiple inputs on one line 建议您的语法应为

cin >> a >> b >> c;

无论如何,我认为编译器建议 cin 不能保证对所有变量的赋值,因此在声明它们时没有显式初始化你假设太多了。