#7133: 請問line:25是什麼


jimmyee (LEVEL_UP)


我的CODE如下

 

 #include <iostream>

#include <algorithm>

using namespace std;

 

class score

{

public:

string name;

int H;

int M;

int S;

int SSS;

};

 

bool func(score a, score b)

{

if(a.H!=b.H)

return a.H<b.H;

if(a.M!=b.M)

return a.M<b.M;

if(a.S!=b.S)

return a.S<b.S;

if(a.SSS!=b.SSS)

return a.SSS<b.SSS;

return a.SSS!=b.SSS;

}

 

bool comp(score a, score b)

{

if(a.H!=b.H||a.M!=b.M||a.S!=b.S||a.SSS!=b.SSS)

return 0;

return 1;

}

 

int main()

{

int n, i, j, l;

string s;

while(cin >> n)

{

if(n==0)

break;

score* SCORE = new score [n];

for(i=0;i<n;i++)

{

cin >> SCORE[i].name;

cin >> s;

l=s.length();

for(SCORE[i].H=0, j=0;s[j]>='0'&&s[j]<='9';j++)

SCORE[i].H=SCORE[i].H*10+s[j]-'0';

for(SCORE[i].M=0, j++;s[j]>='0'&&s[j]<='9';j++)

SCORE[i].M=SCORE[i].M*10+s[j]-'0';

for(SCORE[i].S=0, j++;s[j]>='0'&&s[j]<='9';j++)

SCORE[i].S=SCORE[i].S*10+s[j]-'0';

for(SCORE[i].SSS=0, j++;j<l;j++)

SCORE[i].SSS=SCORE[i].SSS*10+s[j]-'0';

while(SCORE[i].SSS&&SCORE[i].SSS<100)

SCORE[i].SSS*=10;

}

sort(SCORE, SCORE+n, func);

cout << "LIST START\n";

for(i=0;i<n/3;i++)

cout << SCORE[i].name << endl;

for(l=i-1;i<n;i++)

if(comp(SCORE[l], SCORE[i]))

cout << SCORE[i].name << endl;

else break;

cout << "LIST END\n";

}

return 0;

}

 

可是不知道哪裡錯了

可以提示一下嗎 

#7138: Re:請問line:25是什麼


jimmyee (LEVEL_UP)


我已經知道了呵呵

是題目好像表達得沒有很好

輸出的順序只要看在側資裡面出現的順序,而跟他們的快或慢沒有關係

另外時間直接讀成string好像比較無腦,耶