有一个学生的数组M,每个数组元素s是学生对象,对象结构大致如下:
学生对象(简称s)
学生.姓名(s.n)
学生.性别(s.s)
学生.语文(s.c)
学生.数学(s.m)
学生.英语(s.e)
学生.总分(s.t)
学生.顺序(s.p)
数组M的排序要求是按照学生的总分s.t排序的,假设是10个元素s1-s10。
第一次输入的数组M也是按照总分排好序的,s1的总分最高。
现在的需求是需要改变数组M的顺序,要求如下:
1、需要将s7,s8调整到第2、3的顺序(即s7.p=2; s8.p=3),且只能改变语文成绩。比如增加s7,s8语文成绩,s7,s8总分就会增加。改变的要求见2。
2、改变后的s1.c、s7.c、s8.c的值(语文成绩)不能大于95,s2-s6,s9、s10的语文成绩可以随意增减,但也不能大于95,最终结果s1-s10的语文成绩显得有一定档次,不要断档(我们可以定义3分即为断档)。比如情况1就是比较合理的,情况2就是不合理,有断档:
情况1(可以看出从89-95都有,没有断档):
s1.c=94,
s7.c=95,
s8.c=93,
s2.c=90,
s3.c=88,
s4.c=92,
s5.c=90,
s6.c=91,
s9.c=90,
s10.c=89
情况2(可以看出从89-95基本都有,但s3.c=82,83-88都没有,形成了断档):
s1.c=94,
s7.c=95,
s8.c=93,
s2.c=90,
s3.c=82,
s4.c=92,
s5.c=90,
s6.c=91,
s9.c=90,
s10.c=89,
就想问一下这个需求的算法或者逻辑。谢了!