习题3-1 得分
给出一个由O和X组成的串(长度为1~80),统计得分,每个O的得分为目前连续出现的O的个数,X的得分为0。例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。
#include <stdio.h>
#include <iostream>
#include <string.h>
char buffer[100]; //存放输入的数组
int main()
{
//int flag;
int score = 0,count = 0; //一个是总分,一个是当前O的分值
while(scanf("%s",buffer) == 1) {
int n = strlen(buffer); //记录输入字符串的长度
for(int i = 0; i < n; i++ ) {
if(buffer[i] == 'X') {
count = 0;
}
else {
count++; //如果是O的话,连续增加分数值
score += count; //将总分加上分数值
}
}
printf("%d\n",score);
}
return 0;
}
注解
一开始以为需要一个标志变量flag,后来发现当O断掉的时候直接让记录当前连续值的那个变量为0重新开始计数就可以了。