大佬们,请帮忙看一下我这个去重方法为什么不行呗
查看原帖
大佬们,请帮忙看一下我这个去重方法为什么不行呗
401973
PANSG楼主2021/1/26 11:24

大佬们,当a【k】使用一次后,我让a【k】= -1;这样a【k】就不可能使用第二次了。但是这个去重方法为什么不对啊,请大佬解答

 #include<stdio.h>
int main(void)
{
	int n;
	int k;
	long long a[100005];
	int i,j;
	int count = 0; 
	scanf("%d",&n); 
	for(i=0;i<n;i++)
	{
		scanf("%lld",&a[i]);
	}
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
			for(k=0;k<n;k++)
			{
				if(a[k]==a[i]+a[j])
			    {
			    	a[k] = -1; //因为所有数都是正数,所以相加不会等于-1,这样保证a[k]只使用一次 
					count++;
					break;
				}		
			}
		}
	}
	printf("%d",count);
	return 0;
 } 
2021/1/26 11:24
加载中...