今天做了一道刘汝佳算法竞赛上面推荐的一道题,得分问题,题目不是很难。
题目
得分(Score,ACM/ICPC Seoul 2005,UVa1585)
给出一个由O和 X组成的串(长度为1-80),最多有十个串,统计得分。每个O的得分为目前连续出现的O的个数,X 的得分为0;
样例输入
2
OOXXOXXOOO
OOOOOXXOXOXOXOXOXO
样例输出
1+2+0+0+1+0+0+0+1+2+3=10
1+2+3+4+5+0+0+1+0+1+0+1+0+1+0+1+0+1=21
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 10
#define MAX 80
int main()
{
char s[N][MAX];
int a,i,j,sum,c0;
c0=sum=0;
scanf("%d",&a);
for(i=0;i<a;i++)
{
scanf("%s",s[i]);
}
for(i=0;i<a;i++)
{
sum=0;
for(j=0;s[i][j]!='\0';j++)
{
if(s[i][j]=='o'||s[i][j]=='O')
{
c0++;
printf("%d",c0);
}
else
{
c0=0;
printf("%d",0);
}
if(s[i][j+1]=='\0')
{
printf("=");
}
else
{
printf("+");
}
sum+=c0;
}
printf("%d\n",sum);
}
return 0;
}
运行测试结果
总结
这道题一方面考察了字符串的输入读取,另一方面考察了循环与判断,主要就是符合格式输出就ok了。
本来想去UVaOJ网站提交这个题看有没有错误,结果没能登进去系统,自己运行测试了一下,感觉没啥问题,发出来让大家帮忙看看。
加油!!!