问题描述
思路
双层循环:第一层循环定住一个数,第二层循环从该数下一个开始遍历,依次判断是否与该数为相反数,若找到了则计数器+1,并跳出第二层循环。
完整代码
#include<bits/stdc++.h>
using namespace std;
const int maxnum = 5e+2; //最多有多少个数
int num[maxnum] = {0};
int main(){
int pre = 0, last = 0; //循环,找相反数
int n; //一共有多少数
int i;
int counter = 0; //计数:有多少对相反数
//int num[500]={0};
scanf("%d",&n);
for(i = 0; i < n; i++){
scanf("%d",&num[i]);
}
for(i = pre; i < n; i++){
for(last = pre+1; last < n; last++){
if(num[pre] + num[last] == 0){
counter++;
break;
}
}
pre++;
}
printf("%d",counter);
return 0;
}