一个排序,用代码实现

xiaotupansy 2007-03-17 03:14:14
学生,成绩做倒序排,成绩相同,按年龄小的排前,年龄也同,按姓名作排序,不用数据库,直接用代码来实现
...全文
197 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaotupansy 2007-03-17
  • 打赏
  • 举报
回复
to liujia_0421(SnowLover)
非常感谢!
老大你帮我解决不少问题了
soonsnipe 2007-03-17
  • 打赏
  • 举报
回复
楼上正解
liujia_0421 2007-03-17
  • 打赏
  • 举报
回复
按成绩降序,年龄升序,姓名升序??

for exampe;

class Program
{
static void Main(string[] args)
{
List<Student> array = new List<Student>();
Student st = new Student("aaa", 23, 88);
array.Add(st);
st = new Student("bbb", 24, 90);
array.Add(st);
st = new Student("fff", 21, 88);
array.Add(st);
st = new Student("ddd", 21, 88);
array.Add(st);
Console.WriteLine("Before Sort:");
foreach (Student s in array)
{
Console.WriteLine(s.sname + "\t" + s.sage + "\t" + s.score);
}
array.Sort();
Console.WriteLine("After Sort:");
foreach (Student s in array)
{
Console.WriteLine(s.sname + "\t" + s.sage + "\t" + s.score);
}


}
}
struct Student : IComparable
{
public string sname;
public int sage;
public int score;
public Student(string sname, int sage, int score)
{
this.sname = sname;
this.sage = sage;
this.score = score;
}
public int CompareTo(object obj)
{
Student st = (Student)obj;
if (this.score != st.score)
return st.score.CompareTo(this.score);
if (this.sage != st.sage)
return this.sage.CompareTo(st.sage);
if (this.sname != st.sname)
return this.sname.CompareTo(st.sname);
return 1;
}
}

Before Sort:
aaa 23 88
bbb 24 90
fff 21 88
ddd 21 88
After Sort:
bbb 24 90
ddd 21 88
fff 21 88
aaa 23 88
xiaotupansy 2007-03-17
  • 打赏
  • 举报
回复
据说使用hashtable
王集鹄 2007-03-17
  • 打赏
  • 举报
回复
姓名?成绩?年龄?神仙?妖怪...
是怎么保存的?
文本文件?结构数组?

你是不是看到很多问号?

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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