#include<stdio.h>
int a[22];
#define ERROR printf("Bad shot %d in frame %d.n",a[j],i+1); return;
#define CHECK1 if (a[j] < 0 || a[j] > 10)
#define CHECK2 if (a[j] < 0 || a[j] > 10-a[j-1])
#define OUTPUT1 if (a[j]) printf("%d",a[j]); else printf("-");
#define OUTPUT2 if (a[j] == 10-a[j-1]) { printf("/"); t += a[j+1]; } else OUTPUT1
void score_data()
{
int tx[10] = {0};
int i,j,t;
printf(" 1 2 3 4 5 6 7 8 9 10n");
printf("+---+---+---+---+---+---+---+---+---+---+n");
for (i=0, j=0, t=0; i<10; ++i, ++j){
printf("|");
CHECK1;
if (a[j] == 10) { // strike
tx[i] = t += 10 + a[j+1] + a[j+2];
if (i == 9) {
printf("X");
++j; CHECK1;
if (a[j] == 10) {
printf("X");
++j; CHECK1;
if (a[j] == 10) printf("X");
else OUTPUT1;
}
else {
OUTPUT1;
++j; CHECK2; OUTPUT2;
}
}
else {
printf("X");
}
}
else {
OUTPUT1;
if (i != 9 || a[j] + a[j+1] < 10) printf(" ");
++j; CHECK2; OUTPUT2;
tx[i] = t += a[j-1] + a[j];
}
}
printf("|n+---+---+---+---+---+---+---+---+---+---+n");
for (i=0; i<10; ++i) {
printf("%4d", tx[i]);
}
printf("n");
}
int main(void)
{
int i = 0, j=1;
while (i < 22){
for(j=1; j<=2; j++){
printf("Enter the frame %d score : ",j);
scanf("%d",&a[i++]);
}
}
score_data();
return 0;
}
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."