qq_23353913 2015-09-01 15:53 采纳率: 0%
浏览 1556

保龄球计分 空白填写

#include
#define N 13
struct { int n; /* 一轮内滚球次数 /
int f; /
第一次击倒柱数 /
int s; /
第一次击倒柱数 /
int score; /
本轮得分 /
int total;/
至本轮累计总分 /
int m; /
完成本轮得分计算,还需滚球次数 /
} a [N];
int ok = 0; /
已完成完整计算的轮次数 /
int ball(int i, int n, int max) /
完成一次滚球,输入正确击倒柱数 */

{ int d, j, k; static c = 1;
while(1)
{ if (i <= 10)
printf(" 输入第 %d 轮的第 %d 次滚球击倒柱数。(<= %d) ", i, n, max);
else
printf(" 输入附加的第 %d 次滚球击倒柱数。(<= %d) ", c,max);
scanf("%d", &d);
if (d >=0 && d <= max) break;
printf(" 不合理的击倒柱数,请重新输入。 ");
}
if (ok < (1))
{ /* 对以前未完成计算的轮次分别计算得分与累计总分 /
for(j = ok+1; (2); j++)
{ a[j].score += d;
if (--a[j].m == 0)
{ a[j].total = (__(3)__) + a[j].score; ok =__(4)__;}
}
}
return d;
}
main()
{ int i, /
轮次 / first, second, k;
for(i = 1; ok < 10; i++)
{ /
处理第一次滚球 /
a[i].score = a[i].f = first = ball(i,1,10);
if (first == 10) a[i].m = 2;
a[i].n=1;
if (first < 10 && (i <= 10 || i == 11 && ok < 10 ))
{ /
处理第二次滚球*/
(5) = second = ball(i,2,10-first);
if (first + second == 10) a[i].m = 1;
(6);
}
if (i <= 10 && first < 10 && fist + second < 10)
{ a[i].total = (i > 1 ? a[i-1].total : 0) + a[i].score;

        __(7)__; 
     } 
     printf( " 各轮第一次得分"); 
     for(k = 1; k <= 1; k++)  printf("%5d", a[k].f); 
     printf("  各轮第二次得分 "); 
     for(k=1; k <= i; k++) 
 if (a[k].n < 2) printf(" /"); else printf("%5d", a[k].s); 
     printf("   各轮得分 "); 
     for(k = 1; k <= ok; k++) printf("%5d", a[k].score); 
     printf("    累计总分  "); 
     for(k = 1; k <= ok; k++) printf("%5d", a[k].total); 
     printf(" "); 
  } 

}

  • 写回答

4条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题