成绩统计,谁能帮帮我

题目ID:9600必做题100分
最新提交:
Wrong Answer
20 分
历史最高:
Wrong Answer
20 分

时间限制: 1000ms
空间限制: 524288kB

题目描述

输入N个学生的姓名和语文、数学的得分,按总分从高到低输出,分数相同的按输入先后输出。

输入格式:

   第1行,有一个整数N,N的范围是[1…100];下面有N行,每行一个姓名,2个整数。姓名由不超过10个的小写字母组成,整数范围是[0…100]。

输出格式:

   总分排序后的名单,共N行,每行格式:姓名  语文  数学  总分。

输入样例:

4

gaoxiang  78  96

wangxi  70  99

liujia  90  87

zhangjin  78  91

输出样例:

liujia  90  87  177

gaoxiang  78  96  174

wangxi  70  99  169

zhangjin  78  91  169

谁能救救我

疯狂的WA

以下是我的20分代码

#include<bits/stdc++.h>
using namespace std;
struct z{
int y,s;
int f;
string id;
}a[105];
bool cmp(z x,z e){
return x.f>e.f;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].id>>a[i].y>>a[i].s;
a[i].f=a[i].s+a[i].y;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].id<<" “<<a[i].y<<” “<<a[i].s<<” "<<a[i].f<<endl;
}
return 0;
}

4 个赞

改成稳定排序

4 个赞

块引用#include<bits/stdc++.h>
using namespace std;
struct Student{
string name;
int chinese;
int math;
int id;
};
bool cmp(Student a,Student b){
if(a.math+a.chinese==b.math+b.chinese){
return a.id<b.id;
}
return a.math+a.chinese>b.math+b.chinese;
}
int main(){
int n;
cin>>n;
Student student[n];
for(int i=0;i<n;i++){
cin>>student[i].name;
cin>>student[i].chinese;
cin>>student[i].math;
student[i].id=i;
}
sort(student,student+n,cmp);
for(int i=0;i<n;i++){
cout<<student[i].name<<’ ‘<<student[i].chinese<<’ ‘<<student[i].math<<’ '<<student[i].chinese+student[i].math<<endl;
}
return 0;
}

2 个赞

变成这样

2 个赞

格式化一个

3 个赞

看着难受

2 个赞
#include<bits/stdc++.h>
using namespace std;
struct Student{
  string name;
  int chinese;
  int math;
  int id;
};
bool cmp(Student a,Student b){
  if(a.math+a.chinese==b.math+b.chinese){
    return a.id<b.id;
}
return a.math+a.chinese>b.math+b.chinese;
}
int main(){
  int n;
  cin>>n;
  Student student[n];
  for(int i=0;i<n;i++){
  cin>>student[i].name;
  cin>>student[i].chinese;
  cin>>student[i].math;
  student[i].id=i;
  }
  sort(student,student+n,cmp);
  for(int i=0;i<n;i++){
    cout<<student[i].name<<’ ‘<<student[i].chinese<<’ ‘<<student[i].math<<’ '<<student[i].chinese+student[i].math<<endl;
  }
  return 0;
}
1 个赞
#include<bits/stdc++.h>
using namespace std;
struct node{
	string s;
	long long a,b,d,id;
}sb[111];
bool cmp(node x,node y){
	return x.d>y.d||x.d==y.d&&x.id<y.id;
}
long long n;
int main(){
	cin>>n;
	for(long long i=1;i<=n;i++){
		cin>>sb[i].s>>sb[i].a>>sb[i].b;
		sb[i].d=sb[i].a+sb[i].b;
		sb[i].id=i;
	}
	sort(sb+1,sb+n+1,cmp);
	for(long long i=1;i<=n;i++){
		int x=sb[i].a+sb[i].b;
		cout<<sb[i].s<<" "<<sb[i].a<<" "<<sb[i].b<<" "<<x<<endl;
	}
}
1 个赞