#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=1000;
int main()
{
int a[N];
int i,n,num1,m=0;
memset(a,0,sizeof(a));
cin>>n;
for(i=0;i<n;i++)
{
cin>>num1;
num1=fabs(num1);
a[num1]++;
if(a[num1]==2)
{
m++;
}
}
cout<<m;
return 0;
}
这道题目和CCF认证 201312-1:出现次数最多的数(C++)的方法是相类似的,可以借鉴参考
注意点:求相反数的时候可以直接使用函数fabs,但是不能直接写fabs(num1),因为这样写未改变num1的值,应该写为num1=fabs(num1),要记得在之前加入头文件#include< cmath>