做法一:scanf一个一个地读取
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++)
{
int score=0,state=0;
char a;
while(scanf("%c",&a)&&a!='\n')
{
if(a=='O') state++;
else state=0;
score+=state;
}
printf("%d\n",score);
}
return 0;
}
最开始我写的循环条件是
while(scanf("%c",&a)!='\n')
但是其实,scanf的返回值不是a的值
拓展:scanf的返回值
(106条消息) scanf 函数的返回值_yishengchizha的博客-CSDN博客_scanf的返回值
做法二:gets(a)一口气读取
#include<stdio.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
getchar();
while(n--){
int score=0,state=0;
char a[85];
gets(a);
int len=strlen(a);
for(int j=0;j<len;j++)
{
if(a[j]=='O') state++;
else state=0;
score+=state;
}
printf("%d\n",score);
}
return 0;
}