第一和第六个检测点总是过不去
查看原帖
第一和第六个检测点总是过不去
1265605
JUVBUFFON楼主2024/1/20 16:37
#include<stdio.h>
void EVE(char x[62503])
{
	int a[2501]={0},b[2501]={0},i=0;
	char*p=x;
	while(*p!='E')
	{
		if(*p=='W')
			a[i]++;
		else if(*p=='L')
			b[i]++;
		if((a[i]>=11||b[i]>=11)&&(a[i]-b[i]>=2||b[i]-a[i]>=2))
			i++;
		p++;
	}
	for(i=0;(a[i]!=0||b[i]!=0);i++)
	{
		printf("%d:%d\n",a[i],b[i]);
	}
	if((a[i-1]>=11||b[i-1]>=11)&&(a[i-1]-b[i-1]>=2||b[i-1]-a[i-1]>=2))
	printf("%d:%d\n",a[i],b[i]);
}
void TET(char y[62503])
{
	int a[2501]={0},b[2501]={0},i=0;
	char*pt=y;
	while(*pt!='E')
	{
		if(*pt=='W')
			a[i]++;
		else if(*pt=='L')
			b[i]++;
		if((a[i]>=21||b[i]>=21)&&(a[i]-b[i]>=2||b[i]-a[i]>=2))
			i++;
		pt++;
	}
	for(i=0;(a[i]!=0||b[i]!=0);i++)
	{
		printf("%d:%d\n",a[i],b[i]);
	}
	if((a[i-1]>=21||b[i-1]>=21)&&(a[i-1]-b[i-1]>=2||b[i-1]-a[i-1]>=2))
	printf("%d:%d\n",a[i],b[i]);
}
int main()
{
	int i=0;
	char s[62503],a='w';
	while(a!='E')
	{
		a=getchar();
		s[i++]=a;
	}
	EVE(s);
	printf("\n");
	TET(s);
	return 0;
}

我自己测试没什么问题,也按照题解里面说的改过一点,但是检测点1和6一直wa,实在找不到原因,希望得到大佬的指点,感谢

2024/1/20 16:37
加载中...