C++ 错误:“n”未在此作用域中声明

C++ 错误:“n”未在此作用域中声明,c++,function,compiler-errors,C++,Function,Compiler Errors,我写了一个函数来求n的除数之和 int divisor_sum(long n) { long sum = 0; for (int a=1, a<=n, a++) { if n % a == 0 { sum = sum + a; } } return sum; } 不幸的是,包含主函数骨架的程序将无法编译,因为它表示“n”未在此范围内声明。我在函数定义语句之前和之后很久就尝试将n声明为一个函数,但都没有

我写了一个函数来求n的除数之和

int divisor_sum(long n) {
    long sum = 0;
    for (int a=1, a<=n, a++) {
        if n % a == 0 {
            sum = sum + a;
        }
    }
    return sum;
}
不幸的是,包含主函数骨架的程序将无法编译,因为它表示“n”未在此范围内声明。我在函数定义语句之前和之后很久就尝试将n声明为一个函数,但都没有用。我该如何解决这个问题?
谢谢

就像StoryTeller和O'Neil在评论中告诉你的那样,你需要更换这个

for (int a=1, a<=n, a++)


如果n%a==0->n%a==0。在C++中,if语句条件必须用括号括起来。代码让我觉得它是Python或Perl…对于int a=1,a表示int a=1;A.
for (int a = 1; a <= n; a++)
if n % a == 0
if (n % a == 0)