判断语句每个都要加上绝对值
```cpp
if (abs(all[i].sum - all[j].sum) <= 10 and abs(all[i].yw - all[j].yw) <= 5 and abs(all[i].sx - all[j].sx) <= 5 and
abs(all[i].yy - all[j].yy) <= 5)
```
by ThySecret @ 2023-12-05 20:16:09
@[1145141919810HOMO11](/user/1004337)
```cpp
#include<bits/stdc++.h>
using namespace std;
struct eee {
int yuwen,shuxue,yingyu,zf;
string s;
};
int n;
eee a[1001];
int main() {
scanf("%d",&n);
for(int i=1; i<=n; ++i) {
cin>>a[i].s>>a[i].yuwen>>a[i].shuxue>>a[i].yingyu;
a[i].zf=a[i].yuwen+a[i].shuxue+a[i].yingyu;
}
for(int i=1; i<n; ++i)
for(int j=i+1; j<=n; ++j) {
if(a[i].s>a[j].s) {
swap(a[i].s,a[j].s);
swap(a[i].yuwen,a[j].yuwen);
swap(a[i].shuxue,a[j].shuxue);
swap(a[i].yingyu,a[j].yingyu);
}
}
for(int i=1; i<n; ++i)
for(int j=i+1; j<=n; ++j) {
if(abs(a[i].yuwen-a[j].yuwen)<=5&&abs(a[i].shuxue-a[j].shuxue)<=5&&abs(a[i].yingyu-a[j].yingyu)<=5&&abs(a[i].zf-a[j].zf)<=10) {
cout<<a[i].s<<" "<<a[j].s<<endl;
}
}
return 0;
}
``````
你没加abs//取绝对值
by conancat @ 2023-12-05 20:19:48
@[conancat](/user/780383)
萌新,不太理解,是因为会出现负数?还是什么,麻烦大佬讲解下 @[ThySecret](/user/1055410)
by 1145141919810HOMO11 @ 2023-12-05 20:22:08
不能保证后面元素的大小都小于前面元素,出现负数时就相当于无条件成立了 @[1145141919810HOMO11](/user/1004337)
by ThySecret @ 2023-12-05 20:24:49
@[1145141919810HOMO11](/user/1004337)
如果大的减去小的就会出现负数,不符合判定标准然后出错,所以要取绝对值
by conancat @ 2023-12-05 20:25:42
@[ThySecret](/user/1055410) @[conancat](/user/780383) 感谢感谢,感谢dalao
by 1145141919810HOMO11 @ 2023-12-05 20:27:52
@[1145141919810HOMO11](/user/1004337) 要加绝对值abs()
by wsn0429 @ 2023-12-23 23:11:24
@[ThySecret](/user/1055410)
能帮我也看一下吗,玄关
```cpp
#include<bits/stdc++.h>
using namespace std;
struct stu
{
string s;
int a,b,c;
int d=a+b+c;
};
int main()
{
int n;
stu p[1001];
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>p[i].s>>p[i].a>>p[i].b>>p[i].c;
}
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
stu p1=p[i],p2=p[j];
if(abs(p1.a-p2.a)<=5&&abs(p1.b-p2.b)<=5&&abs(p1.c-p2.c)<=5)
{
if(abs(p1.d-p2.d)<=10)
{
cout<<p1.s<<" "<<p2.s<<endl;
}
}
}
}
return 0;
}
```
by zsjaaaxyzgfwpl1314 @ 2023-12-31 10:17:07
@[zsjaaaxy](/user/953660) 结构体里面的总数要用循环写,直接赋值没用的。
```c++
#include <bits/stdc++.h>
using namespace std;
struct stu
{
string s;
int a, b, c;
int d;
};
int main()
{
int n;
stu p[1001];
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> p[i].s >> p[i].a >> p[i].b >> p[i].c;
p[i].d = p[i].a + p[i].b + p[i].c;
}
for (int i = 1; i <= n; i++)
{
for (int j = i + 1; j <= n; j++)
{
stu p1 = p[i], p2 = p[j];
if (abs(p1.a - p2.a) <= 5 && abs(p1.b - p2.b) <= 5 && abs(p1.c - p2.c) <= 5)
{
if (abs(p1.d - p2.d) <= 10)
{
cout << p1.s << " " << p2.s << endl;
}
}
}
}
return 0;
}
```
by ThySecret @ 2023-12-31 14:32:19
oh 谢谢 已关
@[ThySecret](/user/1055410)
by zsjaaaxyzgfwpl1314 @ 2023-12-31 20:20:38