計算多局多個人玩剪刀石頭布,每個人的勝率
[心得]
1.本來考慮用平手的狀況來得到輸的次數,但參加的人不只兩個所以還是分開計算輸贏
2.還是很奇妙的測資空行
#include <stdio.h>
#include <string.h>
int main()
{
int n,k,i,j,p1,p2,first=0;
char m1[10],m2[10];
int w[101],l[101];
while(scanf("%d",&n))
{
if(!n) break;
else scanf("%d",&k);
j=k*n*(n-1)/2;
for(i=1;i<=n;i++)
{
w[i]=0;
l[i]=0;
}
if(first>0) printf("\n");
for(i=0;i<j;i++)
{
scanf("%d %s %d %s",&p1,m1,&p2,m2);
if((m1[0]=='r')&&(m2[0]=='s')) {w[p1]++; l[p2]++;}
if((m1[0]=='s')&&(m2[0]=='p')) {w[p1]++; l[p2]++;}
if((m1[0]=='p')&&(m2[0]=='r')) {w[p1]++; l[p2]++;}
if((m2[0]=='r')&&(m1[0]=='s')) {w[p2]++; l[p1]++;}
if((m2[0]=='s')&&(m1[0]=='p')) {w[p2]++; l[p1]++;}
if((m2[0]=='p')&&(m1[0]=='r')) {w[p2]++; l[p1]++;}
}
for(i=1;i<=n;i++)
{
if(w[i]+l[i]==0)
printf("-\n");
else
printf("%.3f\n",(float)w[i]/(w[i]+l[i]));
}
first++;
}
return 0;
}
留言列表