大佬求助,帮我康康哪有问题
查看原帖
大佬求助,帮我康康哪有问题
1200906
xiusiku楼主2023/12/7 01:18
#include<stdio.h>
#include<stdlib.h>

int cmp(const void *e1, const void *e2)
{
	return *(int*)e1 - *(int*)e2;
}

int main() 
{
	int n;
	scanf("%d", &n);
	int *arr = (int*)malloc(n * sizeof(int));
	for (int i = 0; i < n; i++) 
	{
		scanf("%d", &arr[i]);
	}
	qsort(arr, n, sizeof(int), cmp);

	int sum = 0;
	int *p1 = arr;
	int *p2 = p1 + 1;
	int *p3 = p2 + 1;

	while (p1 <= arr + n - 3)
	{
		p2 = p1 + 1;
		while (p2 <= arr + n - 2) 
		{
			p3 = p2 + 1;
			while (p3 <= arr + n - 1)
			{
				if (*p1 + *p2 == *p3) 
				{
					sum++;
					break;
				}
				else if (*p1 + *p2 > *p3) 
				{
					p3++;
				}
				else 
				{
					break;
				}
			}
			p2++;
		}
		p1++;
	}

	printf("%d\n", sum);
	free(arr);
	return 0;
}
2023/12/7 01:18
加载中...