UVa OJ Kindergarten Counting Game
目标:计词
折腾了两个小时,代码修修补补,实在狼狈
以下是我自己的代码(可读性不行啊):读取字符串用了gets()
#include <iostream> #include <stdio.h> #include <ctype.h> using namespace std; const int MAXN = 100000; int main() { int front,rear,count; char str[MAXN]; while(gets(str)) { count = 0 ; front = 0 ; rear = 0 ; for(int i=0; ; i++) { if( i == MAXN || !isalpha(str[i]) ) { rear = i ; if( front != rear && isalpha(str[front])) count ++; front = i + 1; } if(str[i] == '\0') break; } cout<<count<<endl; } return 0; }
别人的代码如下(自己小改了一下,可读性还是挺高的):
#include <iostream> #include <stdio.h> #include <ctype.h> using namespace std; int main() { int cnt = 0; int inword = 0; char ch; while(ch=getchar()) { if(isalpha(ch)) { inword = 1; } else if(ch == '\n')// 碰到回车输出cnt { cout << cnt + inword << endl; cnt = 0; inword = 0; } else if(inword)// 避免有连续空格或字符出现 { cnt++; inword = 0 ; } } return 0; }