看板 C_and_CPP 關於我們 聯絡資訊
紅色是跟你原來程式不一樣的地方,改一下就可以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
cutecpu:忘了#include<memory.h> 好像也是新加的 XD 04/09 10:16
bleed1979:我是用#include <string.h> 04/09 17:18
lanborghini:感激不盡耶~~後來我只把a b的陣列加大就過了~^^~謝謝 04/09 20:07