作者gcobc12632 (Ted)
看板NTUE-CS102
标题[闲聊] 潮爽得 自己写出重复排名 分享一下
时间Tue Jan 19 20:45:40 2010
努力奋战的将C++全部重写,
我应该真的有能力成为贾诩了…
因为,
我把四个屍体都成功复活成屍兵了!
==============(以上骗钱的)=============
我分享一下我的写法,只写上重复排名的部份:
int j,k[10000],
for(int m=0;m<10000;m++) //注1
{
k[m]=m+1;
}
for(j=0;j<n;j++) //这里的n是最之前输入人数的n
{
if(sum[j]==sum[j+1]) //注2
{
k[j+1]=k[j];
}
}
cout<<"第"<<k[j]<<"名"; //以下略
我的写法是:
把排名的部份也写成一个阵列,
因为这样阵列会比较好去做比较、互换等动作…
※注1:
此回圈在做的动作是:将排名阵列(k[10000])的初始值设为1~10000
这样就可避免cout时,阵列没有设定初始值而跑出乱码。
(当我想将排名设为阵列时还想说:干,一万个初始值设到死喔= =)
※注2:
这就是重复排名的解决方法。
if(後面的总分=前面的总分)
後面的排名=前面的排名
这样的输出结果就会等於:
如果第3名的总分等於第2名的总分
就把第2名的排名丢给第3名(以此类推
但是如果没有总分等於的话,
又会继续依照初始值所设定的名次所排下去!
例如:a跟b的总分一样,且第1名,将a的名次给b(两个都第1)
(sum[j]==sum[j+1]→k[j+1]=k[j])
c的总分没跟b一样,固不考虑if,并且k[2]=3,固c的排名为3
哈哈我真是强~
炮哥,加油好吗?
呼呼,这篇全部都手打的(包括程式部分)
赚不少喔~啾咪^.<
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.29.72
1F:推 ip3311:GOOD 新想法唷! 阿泰 全台湾未来的资讯业龙头就是你了 01/19 20:49
你是在酸我还是在捧我……
※ 编辑: gcobc12632 来自: 114.32.29.72 (01/19 21:05)
2F:→ ip3311:我在鼓励你= = 01/19 21:51
3F:→ gcobc12632:考试的时候想不出来 现在才来马後炮 真是捶心肝= = 01/19 21:55
4F:推 garfield112:我还一为这篇会XX = = 01/21 01:48
5F:推 suan710:缴交期限过了会有人来看...? 01/21 02:07
6F:→ gcobc12632:楼楼上 这是做人的问题( ̄ㄧ ̄;) 01/21 11:49