ps:最好都开在全局变量里面,而且数组不能开太大,避免run time error;
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 +10;
int a[105],t[20005],q[20005];
int n,ans,maxn;
int main()
{
cin >> n;
for(int i = 1 ; i <= n ; i++)
{
cin >> a[i];
q[a[i]]=1;
}
for(int i = 1 ; i<n ; i++)
{
for(int j = i + 1; j<=n ; j++)
{
t[a[i] + a[j]]++;
maxn = max (maxn,a[i]+a[j]);
}
}
for(int i = 1 ; i <= maxn ; i++)
if(t[i]>0&&q[i]) ans++;
printf("%d",ans);
return 0;
}//还是一样用数组来计算来统计,嘎嘎好用
//t用来统计相加之和,而q是用来判断=后面的数存不存在,也就是相加之和
//会不会等于数组内某个数