Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:如果有人一个球没扔你的程序好像就不行了In Reply To:如果有人一个球没扔你的程序好像就不行了 Posted by:frkstyc at 2006-03-17 13:35:13 改过了还是WA。。。 #include <iostream> #include <iomanip> using namespace std; char Bowler[12]; int Score[11], Count[11], Kick[11]; void add(int frame, int score) { Score[frame] += score; Count[frame]++; if (frame - 1 >= 1 && Count[frame - 1] < 3) { if (Kick[frame - 1] == 10) Score[frame - 1] += score; Count[frame - 1]++; } if (frame - 2 >= 1 && Count[frame - 2] < 3) { if (Kick[frame - 2] == 10) Score[frame - 2] += score; Count[frame - 2]++; } } int main() { while (cin >>Bowler) { cout <<Bowler; int left = 0, left2 = 0, left3 = 0, out, count = 0; cin >>left; if (left == -1) { cout <<setw(14 - strlen(Bowler - 1)); cout <<" "; cout <<endl <<endl; continue; } cout <<setw(14 - strlen(Bowler)); while (left >= 0 && left2 >= 0 && left3 >= 0) { out = 0; count++; if (left == 0) { Kick[count] = 10; add(count, 10); cout <<'X'; out++; if (count == 10) { cin >>left2; if (left2 == 0) { Kick[count] = 10; add(count, 10); cout <<'X'; } else if (left2 != -1) { add(count, 10 - left2); cout <<10 - left2; } } } else { if (left == 10) { add(count, 0); cout <<'-'; } else { add(count, 10 - left); cout <<10 - left; } out++; cin >>left2; if (count == 10) { if (left2 == 0) { if (left == 0) { Kick[count] = 10; add(count, 10); cout <<'X'; } else { Kick[count] = 10; add(count, left); cout <<'/'; } } else if (left2 == 10) { add(count, 0); cout <<'-'; } else { add(count, left - left2); cout <<left - left2; } } else if (left2 != -1) { if (left2 == 0) { Kick[count] = 10; add(count, left); cout <<'/'; } else if (left2 == 10) { add(count, 0); cout <<'-'; } else { Kick[count] = 10 - left2; add(count, left - left2); cout <<left - left2; } out++; } } if (count == 10 && Kick[count] == 10) { cin >>left3; if (left3 == 0) { if (left2 == 0) { Kick[count] = 10; add(count, 10); cout <<'X'; } else { Kick[count] = 10; add(count, left2); cout <<'/'; } } else if (left3 != -1) { if (left2 == 0) { add(count, 10 - left3); cout <<10 - left3; } else if (left2 == 10) { add(count, 0); cout <<'-'; } else { add(count, left2 - left3); cout <<left2 - left3; } } } if (left >= 0 && left2 >= 0 && left3 >= 0) cin >>left; if (left == -1 || left2 == -1 || left3 == -1) { cout <<endl; cout <<" "; int total = 0; for (int i = 1; i <= count; i++) { if (Count[i] < 3) break; total += Score[i]; cout <<setw(4) <<total; } cout <<endl <<endl; } else { cout <<setw(4 - out) <<' '; } } memset(Bowler, 0, sizeof(Bowler)); memset(Score, 0, sizeof(Score)); memset(Count, 0, sizeof(Count)); memset(Kick, 0, sizeof(Kick)); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator