今天做了一道劉汝佳算法競賽上面推薦的一道題,得分問題,題目不是很難。
題目
得分(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網站提交這個題看有沒有錯誤,結果沒能登進去系統,自己運行測試了一下,感覺沒啥問題,發出來讓大家幫忙看看。
加油!!!