| ||||||||||
| 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 | |||||||||
样例过了,交上去就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;
cout <<setw(14 - strlen(Bowler));
int left = 0, left2 = 0, left3 = 0, out, count = 0;
cin >>left;
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
{
add(count, left - left2);
cout <<left - left2;
}
}
else if (left2 != -1)
{
if (left2 == 0)
{
Kick[count] = 10;
add(count, left);
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
{
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