这段代码为什么会报错?
/*第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的志愿者人数。输入数据保证m*150%向下取整后小于等于n。
第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。
数据保证选手的报名号各不相同。*/
#include <iostream>
#include <algorithm>
using namespace std;
struct List{
int num;
int score;
};
bool cmp(List a,List b)
return a.score>b.score;
int main()
{
int n,m,cnt;
cin>>n>>m;
List pass;
m*=1.5;
for(int i=0;i<n;i++)
cin>>pass.num>>pass.score;
sort(pass,pass+n,cmp);
for(int i=0;i<n;i++)
{
if(pass.score>=m)
cnt++;
}
for(int i=0;i<n;i++)
{
if(pass.score>=m)
cout<<pass.num<<" "<<pass.score<<endl;
}
return 0;
}
error: named return values are no longer supported
老实说多个{}也占不了多少空间。
cin>>n>>m; 多个提示,分开写也不占空间。
#include <iostream>
#include <algorithm>
using namespace std;
struct List
{
int num;
int score;
};
bool cmp(List a,List b);
bool cmp(List a,List b)
{
return a.score>b.score;
}
int main()
{
int n,m,cnt, i;
cout << "请输入n的值:" ;
cin>>n;
cout << "请输入m的值:" ;
cin>>m;
List pass;
m*=1.5;
for(i=0;i<n;i++)
{
cout << "请输入pass["<< i <<"].num的值:" ;
cin>>pass.num;
cout << "请输入pass["<< i <<"].score的值:" ;
cin>>pass.score;
}
sort(pass,pass+n,cmp);
for(i=0;i<n;i++)
{
if(pass.score>=m)
{
cnt++;
}
}
for(i=0;i<n;i++)
{
if(pass.score>=m)
{
cout<<pass.num<<" "<<pass.score<<endl;
}
}
return 0;
}
页:
[1]