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

PTA上的基础编程题
首先这种题对于输出格式的要求,因为我们不知道有多少个单词,所以对最后一个单词进行输出控制会比较麻烦,因此,我们对第一个单词的长度输出格式进行控制。

#include <iostream>
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 来判断是否是第一个单词,从而对应不同的输出格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值