错在了循环方法和判断条件
```cpp
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)//从0开始循环
{
for(m=k+1;m<n;m++){//和k不同
if(k!=j&&m!=j&&a[m]+a[k]==a[j]&&b[j]==1){//k,m都不能和j相同,另外你定义的b对应的是a数组下标,所以应该是b[j]而不是b[a[j]]。
cnt++;
b[j]=0; //出现过就标记为0
break;//加不加都行,加了可以减少循环次数。因为当找到数字j的组合的时候就不需要往下寻找j的其他组合了
}
}
if (b[j]==0)break;//减少循环次数
}
}
```
@[c0621zy](/user/776698)
by WZRYWZWY @ 2022-10-25 10:24:02