Ar1s1234 @ 2024-09-16 12:01:09
#include<stdio.h>
#include<math.h>
void count()
{
char str[25];
int flag = 1,i;
int cnt1[6000][2] = {0},cnt2[3000][2] = {0},count1 = 0,count2 = 0;
while(flag)
{
gets(str);
for(i = 0;str[i] != '\0';i++)
{
if(str[i] == 'E')
{
flag = 0;
break;
}
if(str[i] == 'W')
{
cnt1[count1][0]++;
cnt2[count2][0]++;
}
else
{
cnt1[count1][1]++;
cnt2[count2][1]++;
}
if((cnt1[count1][0] >= 11 || cnt1[count1][1] >= 11) && pow(cnt1[count1][0] - cnt1[count1][1] , 2) >= 4)
{
count1++;
}
if((cnt2[count2][0] >= 21 || cnt2[count2][1] >= 21) && pow(cnt2[count2][0] - cnt2[count2][1] , 2) >= 4)
{
count2++;
}
}
}
for(i = 0;i <= count1;i++)
{
printf("%d:%d\n",cnt1[i][0],cnt1[i][1]);
}
printf("\n");
for(i = 0;i <= count2;i++)
{
printf("%d:%d\n",cnt2[i][0],cnt2[i][1]);
}
}
int main()
{
count();
return 0;
}
代码写的比较丑陋,但是在自己电脑上面跑的结果应该是对的,到平台上就出现了问题,求大佬指点
by Ar1s1234 @ 2024-09-16 12:04:55
搞定了,问题好像出在了洛谷的输入上面,if里的判定加了一条(str[i] == 'L')就好了
by sanjuu2024 @ 2024-10-12 10:28:17
@Ar1s1234 感谢,我也是这个问题,幸好看到你的贴子了,不然不知道要卡多久o( ̄▽ ̄)o
by sanjuu2024 @ 2024-10-12 10:29:20
@Ar1s1234 顺便可以问问为什么加上这一句就好了嘛,洛谷输入里面还有其他什么字符吗?