[心得] //0.256
1.memset也可以初始化 布林陣列 ,memset define 在 "string.h"裡
2. res[]陣列是用來記錄選手i贏的次數
3.flag[]陣列是,表示這次比賽如果不是平手,=>用來記錄選手i 這次比賽有意義
4, time[] 陣列是用來紀錄選手i到底比賽幾次(但是平手不紀錄)
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int i,j=0,number,time[150],game,p1,p2,res[150];
char m1[10],m2[10];
int main()
{
while(scanf("%d %d",&number,&game)==2)
{
if(number==0)
break;
if(j>0)
printf("\n");
j++;
bool flag[number+1];
game= game*number*(number-1)/2;
memset(res,0,sizeof(res));
memset(time,0,sizeof(time));
memset(flag,false,sizeof(flag));
for(i=0;i<game;i++)
{
scanf("%d %s %d %s",&p1,m1,&p2,m2);
if(m1[0]=='r' && m2[0]=='p')
{res[p2]+=1; flag[p1]=flag[p2]=true; time[p1]+=1;time[p2]+=1;}
else if (m1[0]=='r' && m2[0]=='s')
{res[p1]+=1; flag[p1]=flag[p2]=true; time[p1]+=1;time[p2]+=1;}
else if (m1[0]=='p' && m2[0]=='r')
{res[p1]+=1; flag[p1]=flag[p2]=true; time[p1]+=1;time[p2]+=1;}
else if (m1[0]=='p' && m2[0]=='s')
{res[p2]+=1; flag[p1]=flag[p2]=true; time[p1]+=1;time[p2]+=1;;}
else if (m1[0]=='s' && m2[0]=='p')
{res[p1]++; flag[p1]=flag[p2]=true; time[p1]+=1;time[p2]+=1;}
else if (m1[0]=='s' && m2[0]=='r')
{res[p2]+=1; flag[p1]=flag[p2]=true; time[p1]+=1;time[p2]+=1;}
}
for(i=1;i<=number;i++)
{
if( flag[i] == false)
printf("-\n");
else
{
printf("%.3f\n",(double)res[i]/time[i]);
}
}
}
system("pause");
return 0;
}
沒有留言:
張貼留言