题目
代码
#include<stdio.h>
#include<malloc.h>
int main()
{
int n,*a,i,j,count=0;
//int *flag;
scanf("%d",&n);
a = (int*)malloc(sizeof(int)*n);
// flag = (int*)malloc(sizeof(int)*n);
for(i = 0; i < n; i++)
{
scanf("%d",&a[i]);
// flag[i] = 0;
}
/* for(i=0;i<n;i++){
printf("%d\n",a[i]);
}
*/
for(i = 0; i < n; i++)
{
for(j = n; j > i; j--)
{
if(a[i] == -a[j] )//&& flag[j] == 0)
{
count++;
// printf("%d\t",count);
// flag[j] = 1;
}
}
}
printf("%d\n",count);
return 0;
}
- 曾经想过用flag做是否被比较过的标志,虽然用flag做标志很常见,但是等到我用到它的时候,才发现平时只是能够看懂并理解,真正到自己写的时候却不知道怎么写。后来发现从后向前比较,直到要比较的那个数这样比较的话可以起到和flag一样的效果。