样例过了,但是wa

P5741 【深基7.例10】旗鼓相当的对手 - 加强版

判断语句每个都要加上绝对值 ```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


|