有n(1≤n≤100)个学生的成绩记录,其中包含学号和成绩两项。按照成绩从高到低顺序输出成绩及格(≥60)学生的学号和成绩。成绩相同时按照学号从小到大顺序输出。

cjl1166 2013-04-08 11:31:17



Input



第1行:输入一个整数n,表示学生记录数。

第2行 ~ n+1行:每行是学号(11位数字)及成绩(0到100之间的整数)。学号和成绩之间有一个空格。


Output



每行输出成绩及格学生按要求排序后以一个空格分隔的学号及成绩。


Sample Input

5
10002130201 90
10002130230 80
10002130231 85
10002130148 48
10002130167 90

Sample Output



10002130167 90
10002130201 90
10002130231 85
10002130230 80
#include<stdio.h>
struct Student
{
int a[12];
int num;
};
int main()
{
struct Student stu[101],temp;
int i,j,k,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %d",stu[i].a,&stu[i].num);
}
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{if(stu[j].num>stu[k].num)
{k=j;
temp=stu[k];stu[k]=stu[i];stu[i]=temp;}
if(stu[j].num==stu[k].num)
{if(stu[j].a<stu[k].a){k=j;
temp=stu[k];stu[k]=stu[i];stu[i]=temp;}
}}}
for(i=0;i<n;i++)
{
if(stu[i].num>=60)
printf("%s %d\n",stu[i].a,stu[i].num);
}
return 0;
}为什么这段代码不起作用呢if(stu[j].num==stu[k].num)
{if(stu[j].a<stu[k].a){k=j;
temp=stu[k];stu[k]=stu[i];stu[i]=temp;}
}}}
...全文
1590 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
b_end_an 2013-04-11
  • 打赏
  • 举报
回复
#include<iostream>
#include<map>
#include<set>
using namespace std;
int main()
{
	map<int, set<int> > a;
	int number, score;
	while(cin >> number >> score)
	{
		a[score].insert(number);
	}
	for(map<int, set<int> >::reverse_iterator itermap = a.rbegin(); itermap!=a.rend(); ++ itermap)
	{
		if(itermap->first<60)
			break;
		for(set<int>::iterator iterset = itermap->second.begin(); iterset != itermap->second.end(); ++iterset)
			cout << *iterset << " " << itermap->first << endl;
	}
}
v2psv 2013-04-09
  • 打赏
  • 举报
回复

struct Student
{
   char a[12];
   int num;
};
Carl_CCC 2013-04-09
  • 打赏
  • 举报
回复
首先的你定义有问题,你应该吧 int a[12];定义成char 然后呢比较这两个不能使用 stu[j].a<stu[k].a C语言没这个功能,你应该用strcmp
具才教务与成绩管理系统综合版基于Excel的有限免费软件,操作极为简便,无需培训,上手即会用。 具才教务与成绩管理系统综合版软件特点 ①对Excel进行深度开发,利用VBA语言编写程序,自设功能,自定义函数,自制菜单和按钮; ②系统含有二十多个子软件; ③根据学校的实际需要设置有关功能,是教育管理部门、学校领导、教务人员、班主任、教师的得力助手; ④只要导入原始数据,施以无需记忆的按钮操作,依托贴心的人机对话功能,就可自动得到各种结果,无须专门培训; ⑤与同类软件相比,优势在于项目的齐全性、操作的方便性、功能的实用性。 具才教务与成绩管理系统综合版含有下列子软件 1..自动分班。有两种分班方式,一是按照性别和成绩的双重搭配进行分班;二是多因素自动分班,综合分析十一项条件:性别、总分、两个自定义特征、七个学科成绩,其中自定义特征可以是骨干生、问题生、特长生、来源学校、城镇生、寄宿生,等等。 2.考场座次编排。每个学校的考生被重新随机排序后散布到各个考场,同一考场内同一单位的考生不相邻。也有按成绩编排功能(防差生抄袭优生)。不仅可用于校际大型考试,亦可用于校内考试(如利用本软件可使同级各班的同学插开考试,有效防范同班熟人之间的作弊问题,登分先按考号登再按班次/学号排序即可将各班成绩分离开来)。 3.考场座位表制作。用于制作考生的考场座位示意表、卓贴,并可轻松按单位(班级)打印输出安排情况。特别当各考室人数不等、座位排布不尽相同,本软件大有用武之地。 4.监考编排。①多堂编排:如果各堂考试的监考一次性安排,各人每次监考的考室不固定,配对亦不固定,则适合用此软件。当监考人数多于考室数,本软件的优势更是明显。②单堂编排:本软件适合于单堂考试(或各堂考试监考人员不变)的监考安排,也适合于高考、中考等考前抽签性质的监考安排(可有效避免抽签费费力、挑三拣四的弊端)。共有三种编排方式:一是随机编排的同优先考虑同一单位的尽可能避开;二是随机编排的同优先考虑男女搭配;三是无条件随机编排。 5.学生成绩统计。适合各级各类学校同一年级的学生成绩统计分析评比。自动统计输出项目:每个学生的总分与各科名次;各班和全体的各科各分数段、名次段人数分布;各班和全体的各科考试人数、总分、均分;各班和全体的各科最高最分、及格(优秀)人数、及格(优秀)率;各班前n名的学生均分;各科前n名光荣榜;还有统计任课教师成绩功能。 6.多校联考成绩管理。自动统计输出项目:每个学生的总分与各科名次;各校和全体的各科各分数段、名次段人数分布;各校和全体的各科考试人数、总分、均分;各校和全体的各科最高最分、及格(优秀)人数、及格(优秀)率;各校前n名的学生均分;各校前n科全部合格人数及全合率。还可一次性自动调出各科前n名光荣榜。 7.学生通家书制作。(1)操行评语功能。系统已分类建立了评语库,可供班主任给学生写评语直接调用,不需打字,点击选取即可。使用者可以维护评语库,增加或删除评语。(2)成绩管理功能。班主任可将已有成绩直接批量导入。(3)学生信息导入功能。班主任可将已有学生学号和姓名直接批量导入。(4)通家书一次性打印功能。当学生成绩和评语录入后,只要点击一个按钮,电脑就会自动将全班学生的通家书一次性打印出来。每个学生打印在一张A4纸。内容有:放假通知、成绩单(含极具参考价值的全班各科均分和最高分)、操行评语、操行等级、班主任姓名电话、家长意见栏等。 8.学籍管理。主要功能:①基本设置:课程设置、级别设置、班别设置;②权限管理:一般用户,高级用户,管理员;③学籍管理:有学籍录入、学生异动(休学、复学、退学、转学、调班)、信息查询、毕业划转、学籍卡批量打印;④成绩管理:录入、查询、变动等。 9. 多校统一招生录取。报名及考试结束后,将各校招生人员集中在一起,由一名微机员操作,将操作情况投影到大屏幕上供大家了解和监督,共有四个录取批次(每生可报四个志愿学校),录取的全部工作会在半小内完成。 10.卷面成绩统计分析。主要统计项目:每个学生的总分、名次;各题在各班和全级的均分、最高分及其人数、最分及其人数、频率最高得分及其人数;总分在各班的各分数段人数分布、前×名在各班的人数分布、光荣榜等。还会算出各任课教师的均分、及格率、优秀率等。 11.单科成绩跟踪分析。对单科12次考试成绩进行前后跟踪对照分析,每个学生的进退情况一目了然。 12.学生成绩标准分统计分析。自动完成项目:①每个学生各科和总分的名次及其各种排序;②每个学生各科成绩的标准分;③全班各科成绩的均分、标准差、及格人数/率、最高最分;④各科和总分各分数段的人数。 13.教师登分。可由电脑通过查找学号(或考号)进行单科登分,也可由电脑按学号、考号的顺序进行多科登分。支

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧