C语言解体育运动会得分问题
A、B、C三人参加了体育运动会,有M个项目,每个项目一、二、三名分别获得X Y Z分,B得了百米第一名,比赛结束后,A得了22分,B和C都9分,问M值是多少?问跳高第二名由谁获得?过程可以理解为这样,谁能把它编程C语言啊,谢谢
考虑三个人得的总分,有方程:
M(p1+p2+p3)=22+9+9=40 ①
p1+p2+p3≥1+2+3=6 ②
∴6M≤M(p1+p2+p3)=40,从而M≤6.
由题设知至少有百米和跳高两个项目,从而M≥2.
又M|40,所以M可取2、4、5.
分析:
考虑M=2,则只有跳高和百米,而B百米第一,但总分仅9分,故必有:9≥p1+p3,这样A不可能得22分.
若M=4,由B可知:9≥p1+3p3,又p3≥1,所以p1≤6,若p1≤5,那么四项最多得20分,A就不可能得22分,故p1=6.
∵4(p1+p2+p3)=40,∴p2+p3=4.
故有:p2=3,p3=1,A最多得三个第一,一个第二,一共得分3×6+3=21<22,矛盾.
若M=5,这时由5(p1+p2+p3)=40,得:
p1+p2+p3=8.若p3≥2,则:
p1+p2+p3≥4+3+2=9,矛盾,故p3=1.
又p1必须大于或等于5,否则,A五次最高只能得20分,与题设矛盾,所以p1≥5.
若p1≥6,则p2+p3≤2,这也与题设矛盾,∴p1=5,p2+p3=3,即p2=2,p3=1.
A=22=4×5+2.
故A得了四个第一,一个第二;
B=9=5+4×1,
故B得了一个第一,四个第三;
C=9=4×2+1,
故C得了四个第二,一个第三.
跳高中C取得第二名
[ 本帖最后由 xiajing 于 2011-9-20 09:01 编辑 ]