为什么不对?求题解~~

YBT:1154:亲和数
#include
using namespace std;
bool isAmicable(int n)
{
int k;
for(int i=1;i<=n;i++)
{
if(n%i==0&&i!=n)
return true;
}
for(int j=1;j<=k;j++)
{
if(k%j==0&&j!=k)
return true;
}
return true;
}
int main()
{
int a[101],b[101],l,s1=0,s2=0,min=10000,a,b;
for(l=1;l<=100;l++;)
{
for(int i=1;i<=l;i++)
{
if(isAmicable(i))
a[l]=l;
s1+=a[l];
}
for(int j=1;j<=l;j++)
{
if(isAmicable(j))
b[l]=l;
s2+=b[l];
}
if(s1==b[l]&&s2==a[l]&&b[l]!=a[l]&&a[l]
{
if(min>a[l]+b[l])
{
a=a[l];
b=b[l];
}
}
}
cout<
return 0;
}
为什么编译错误?


#include <bits/stdc++.h>
using namespace std;
bool isAmicable(int n) {
    int k;
    for (int i = 1; i <= n; i++) {
        if (n % i == 0 && i != n)
            return true;
    }
    for (int j = 1; j <= k; j++) {
        if (k % j == 0 && j != k)
            return true;
    }
    return true;
}
int main() {
    int a[101], b[101], l, s1 = 0, s2 = 0, min = 10000, A, B;
    for (l = 1; l <= 100; l++) {
        for (int i = 1; i <= l; i++) {
            if (isAmicable(i))
                a[l] = l;
            s1 += a[l];
        }
        for (int j = 1; j <= l; j++) {
            if (isAmicable(j))
                b[l] = l;
            s2 += b[l];
        }
        if (s1 == b[l] && s2 == a[l] && b[l] != a[l] && a[l] < b[l]) {
            if (min > a[l] + b[l]) {
                A = a[l];
                B = b[l];
            }
        }
    }
    cout << A << " " << B;
    return 0;
}

因为你的变量名a和数组a在下面它认为你是用表示数组的a去接收赋值,避免这样命名