// 先做一次自我排序
for (int i=0; i<num; i++) {
for (int j=i; j<num; j++) {
if (a[i]>a[j]) {
a[i]=a[i]^a[j];
a[j]=a[i]^a[j];
a[i]=a[i]^a[j];
}
}
}
20130507,维护上面这段代码的两个程序员都辞职了,负责这个项目的项目经理也辞职了。这就是后果。
这端代码实现了不用第三个变量就交换两个变量的值。
这段代码所属的项目,一个2万7千元的外包项目做了13个月,完成度不到一半,最终只收到一万多块钱。
下面是同一项目代码片段,两个函数名字几乎相同,代码也几乎相同20130624:
void XFace::Init(int flag)
{
if (flag>0 || flag<16) {
spriteFace=CCSprite::create("register_head-hd.png", CCRect((flag%8)*42, (flag/8)*42, 42, 42));
} else {
spriteFace=CCSprite::create("register_head-hd.png", CCRect(0, 0, 42, 42));
}
addChild(spriteFace);
}
void XFace::init(int flag)
{
CCSprite* spritebg=CCSprite::create("desk_yesbody-hd.png");
addChild(spritebg);
if (flag>0 || flag<16) {
spriteFace=CCSprite::create("register_head-hd.png", CCRect((flag%8)*42, (flag/8)*42, 42, 42));
} else {
spriteFace=CCSprite::create("register_head-hd.png", CCRect(0, 0, 42, 42));
}
addChild(spriteFace, 0);
}
真不知道为什么要这样写(明明一行赋值,最多加个判断就解决了)20130720:
switch (tag) {
case 0:
m_iChairID=0;
break;
case 1:
m_iChairID=1;
break;
case 2:
m_iChairID=2;
break;
default:
break;
}
20131007服了: