Re: [問題] ACM 10903
紅色是跟你原來程式不一樣的地方,改一下就可以ac了
#include<stdio.h>
#include<memory.h>
int pl[101][2]; /*換個位置而已,也可以放到 main 裡面*/
int main()
{
int n,k,i,j=0;
int p,q;
float kk;
char b[9],a[9]; /* 8 改成 9*/
while(scanf("%d",&n)){
if(n==0) return 0;
scanf("%d",&k);
if(j>0)
printf("\n");/*資測間空行*/
j++;
memset(pl,0,sizeof(pl)); /* 歸0 */
for(i=0;i<k*n*(n-1)/2;i++){
scanf("%d %s %d %s",&p,a,&q,b);
if(a[0]=='s'&&b[0]=='p'){/*剪刀(p1)對布(p2)*/
pl[p][0]++;
pl[q][1]++;
}
else if(a[0]=='p'&&b[0]=='r'){/*布(p1)對石頭(p2)*/
pl[p][0]++;
pl[q][1]++;
}
else if(a[0]=='r'&&b[0]=='s'){/*石頭(p1)對剪刀(p2)*/
pl[p][0]++;
pl[q][1]++;
}
else if(a[0]=='s'&&b[0]=='r'){/*剪刀(p1)對石頭(p2)*/
pl[p][1]++;
pl[q][0]++;
}
else if(a[0]=='p'&&b[0]=='s'){/*布(p1)對剪刀(p2)*/
pl[p][1]++;
pl[q][0]++;
}
else if(a[0]=='r'&&b[0]=='p'){/*石頭(p1)對布(p2)*/
pl[p][1]++;
pl[q][0]++;
}
}
for(i=1;i<=n;i++){ /*印出答案*/
kk = pl[i][0]+pl[i][1];
if(!kk) printf("-\n");
else{
kk = pl[i][0]/kk;
printf("%.3f\n",kk);
}
}
}
return 0;
}
※ 引述《lanborghini (BMW)》之銘言:
: 題目出處:http://luckycat.kshs.kh.edu.tw/homework/q10903.htm
: 小弟我這題試了許久,一直找不到為什麼WA,
: 一開始一直以為是資測間沒空行,
: 可是改正之後還是不行~
: 麻煩各位高手解惑~感激不盡!!
: CODE:
: #include<stdio.h>
: int main()
: {
: int n,k,i,j=0;
: int p,q;
: float kk;
: char b[8],a[8];
: while(scanf("%d",&n)){
: if(n==0) return 0;
: scanf("%d",&k);
: if(j>0)
: printf("\n");/*資測間空行*/
: j++;
: int pl[101][2]={0};/*這邊[101][0]後面的兩個陣列[0]是用來記勝場數*/
: /*[1]是用來記敗場數*/
: for(i=0;i<k*n*(n-1)/2;i++){
: scanf("%d %s %d %s",&p,a,&q,b);
: if(a[0]=='s'&&b[0]=='p'){/*剪刀(p1)對布(p2)*/
: pl[p][0]++;
: pl[q][1]++;
: }
: else if(a[0]=='p'&&b[0]=='r'){/*布(p1)對石頭(p2)*/
: pl[p][0]++;
: pl[q][1]++;
: }
: else if(a[0]=='r'&&b[0]=='s'){/*石頭(p1)對剪刀(p2)*/
: pl[p][0]++;
: pl[q][1]++;
: }
: else if(a[0]=='s'&&b[0]=='r'){/*剪刀(p1)對石頭(p2)*/
: pl[p][1]++;
: pl[q][0]++;
: }
: else if(a[0]=='p'&&b[0]=='s'){/*布(p1)對剪刀(p2)*/
: pl[p][1]++;
: pl[q][0]++;
: }
: else if(a[0]=='r'&&b[0]=='p'){/*石頭(p1)對布(p2)*/
: pl[p][1]++;
: pl[q][0]++;
: }
: }
: for(i=1;i<=n;i++){ /*印出答案*/
: kk = pl[i][0]+pl[i][1];
: if(!kk) printf("-\n");
: else{
: kk = pl[i][0]/kk;
: printf("%.3f\n",kk);
: }
: }
: }
: return 0;
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.4.112
→
04/09 10:16, , 1F
04/09 10:16, 1F
→
04/09 17:18, , 2F
04/09 17:18, 2F
推
04/09 20:07, , 3F
04/09 20:07, 3F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章