换个输入形式为什么过不了这题,求解!
查看原帖
换个输入形式为什么过不了这题,求解!
1555297
Yideer2楼主2024/12/31 14:45
#include<bits/stdc++.h>
using namespace std;
int a[2500*26];
int main()
{
	char s='\n';int w=0,f=0;
	int i=1;
	for( i=1;s!='E';i++){
//		scanf("%c",&s);
//		if(s=='\n'){
//			scanf("%c",&s);
//		}
        cin>>s;
		if(s=='W')a[i]=1;
		else a[i]=2;
	} 
    a[i-1]=0;
    i=1;
	while(a[i]!=0){
		if(a[i]==1)
			w++;
		if(a[i]==2)
		    f++;
		if(a[i]==0)break; 
		if(w>=11||f>=11){
			if(w-f>=2||f-w>=2){
				printf("%d:%d\n",w,f);
				w=0,f=0;
			}
		}
		i++;
	}
	printf("%d:%d\n\n",w,f);
	w=0,f=0;
	i=1;
	while(a[i]!=0){
		if(a[i]==1)
			w++;
		if(a[i]==2)
		    f++;
		if(a[i]==0)break; 
		if(w>=21||f>=21){
			if(w-f>=2||f-w>=2){
				printf("%d:%d\n",w,f);
				w=0,f=0;
			}
		}
		i++;
	}
	printf("%d:%d",w,f);
	return 0;
 } 

怎么说呢,这段代码思路是对的,毕竟是我看了题解之后写的 但是就是下面这一段,假如我把注释撤掉, 把cin>>s注释掉, 意思就是用scanf输入字符,并忽略回车符 但我发现这样只能过第一个和最后一个测试点 而在我自己的电脑里我输入第二个测试点数据的时候我发现输出没有问题。 为什么思路一样,却过不了这题,求大佬指点! !!!

for( i=1;s!='E';i++){
//		scanf("%c",&s);
//		if(s=='\n'){
//			scanf("%c",&s);
//		}
        cin>>s;
		if(s=='W')a[i]=1;
		else a[i]=2;
	} 

2024/12/31 14:45
加载中...