求助,两段功能一样的代码为什么输出结果不同?
查看原帖
求助,两段功能一样的代码为什么输出结果不同?
1048451
du_zao1楼主2024/1/1 17:13
#include <bits/stdc++.h>
using namespace std;

int main() {
	int N,sum[1010],cnt=0;
	cin >> N;
	int a[1010][3];
	for (int i=1; i<=N; i++) {
		cin >> a[i][0] >> a[i][1] >> a[i][2];
		sum[i]=a[i][0]+a[i][1]+a[i][2];
	}

	for (int i=1; i<=N; i++) {
		for (int j=i+1; j<=N; j++) {
			if (abs(a[i][0] - a[j][0]) <= 5)
				if ((abs(a[i][1] - a[j][1]) <= 5))
					if ((abs(a[i][2] - a[j][2]) <= 5))
						if ((abs(sum[i] - sum[j]) <= 10))
							cnt++;
		}
	}
	cout << cnt;
	return 0;
}

和另一段代码

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int N,sum=0;
	cin >> N;
	int a[1010][4];
	for (int i=1;i<=N;i++)
	{
		for (int j=0;j<3;j++)
		{
			cin >> a[i][j];
			a[i][3]+=a[i][j];
		}
	}
	
	for (int i=1;i<=N;i++)
	{
		for (int j=i+1;j<=N;j++)
		{
			if (abs(a[i][0]-a[j][0])<=5)
				if ((abs(a[i][1]-a[j][1])<=5))
					if ((abs(a[i][2]-a[j][2])<=5))
						if ((abs(a[i][3]-a[j][3])<=10))
							sum++;
		}
	}
	cout << sum;
	return 0;
}

在最后一个测试点中,前者的结果为170而后者的结果为125。我感觉上觉得两段代码功能一样,为什么结果不同?

2024/1/1 17:13
加载中...