QAQ错误的原因和上次一样
洛谷P5740 【深基7.例9】最厉害的学生
第一次错误代码
#include<bits/stdc++.h>
using namespace std;
int n;
struct jgt{
string name;
int ch;
int ma;
int en;
int sum;
}a[1009];
bool pd(int x,int y)
{
if(abs(a[x].ch-a[y].ch)<=5&&abs(a[x].ma-a[y].ma)<=5&&abs(a[x].en-a[y].en)<=5&&abs(a[x].sum-a[y].sum)<=5)
//复制粘贴时将总分差值也搞成5了
{
return true;
}
return false;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].name>>a[i].ch>>a[i].ma>>a[i].en;
a[i].sum=a[i].ch+a[i].ma+a[i].en;
}
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(pd(i,j))
{
cout<<a[i].name<<" "<<a[j].name<<endl;
}
}
}
return 0;
}
AC代码
#include<bits/stdc++.h>
using namespace std;
int n;
struct jgt{
string name;
int ch;
int ma;
int en;
int sum;
}a[1009];
bool pd(int x,int y)
{
if(abs(a[x].ch-a[y].ch)<=5&&abs(a[x].ma-a[y].ma)<=5&&abs(a[x].en-a[y].en)<=5&&abs(a[x].sum-a[y].sum)<=10)//已更正
{
return true;
}
return false;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].name>>a[i].ch>>a[i].ma>>a[i].en;
a[i].sum=a[i].ch+a[i].ma+a[i].en;
}
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(pd(i,j))
{
cout<<a[i].name<<" "<<a[j].name<<endl;
}
}
}
return 0;
}
原因分析
复制粘贴后忘记题目要求,数据未更改