PTA -7-26单词长度 之标识符的妙用

PTA -7-26单词长度 之标识符的妙用_第1张图片
首先这种题对于输出格式的要求,因为我们不知道有多少个单词,所以对最后一个单词进行输出控制会比较麻烦,因此,我们对第一个单词的长度输出格式进行控制。

#include 
using namespace std;

int main() {
  char s;
  scanf("%c",&s);
  int count =0;      
  int flag=0;       // 判断是否是第一个单词,等于0,说明统计的是第一个单词
  while (s!='.'){
    if(!isspace(s)) count++;  // 当s不是空白字符时,计数器加一
    else {
      // 碰到是空白字符时,如果计数器非空,那么需要输出前一个单词长度
      if (count) {
        if (flag)                 // 第一个单词以后的每一个单词都输出 ' '+长度
          printf(" %d", count);
        else {
          printf("%d", count);  // 第一个单词不输出空格
          flag = 1;
      }
    }
        count = 0;  // 计数器重新变为0,为下一个单词的统计做准备
    }
    scanf("%c",&s);  
  }
  // 输出连在.前的单词,同样,若该单词是第一个,直接输出字符,否则,输出 ' '+字符
  if (flag && count)  
    printf(" %d",count);
  else if(count) printf("%d",count);

}

最后,完美通过测试,该解法最大的亮点在于使用一个flag 来判断是否是第一个单词,从而对应不同的输出格式。

你可能感兴趣的:(oj练习-PTA)