Serendipity丶


私信TA

用户名:uq_38590416266

访问量:2433

签 名:

别人的屋檐再大,不如自己手中有伞

等  级
排  名 64
经  验 10627
参赛次数 0
文章发表 33
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

唯有提高自己的核心竞争能力,才可在逆流中不断前进。

解题思路: 先看第一二步 就是统计单词个数的简单变化 第三步仅仅考虑最后一个单词 可以先把前俩步弄懂 再看第三步

注意事项:先输入空格 和 后面空格 和最后一个单词的统计

参考代码:

#include<bits/stdc++.h>

using namespace std;

int main()

{

char a[1005],flag = 1;

gets(a);     //获取字符串 

int ans=0,index = 0; //ans用来统计多少个字符,index为下标 

int b[305]={0};    //全部置为0 但是没啥用好像 

int pos1 = strlen(a)-1;

while(a[pos1] == ' '&& pos1>=0) pos1--;  //这个和上一步 去出后面的空格 后面有作用 

for(int i = 0 ; i <= pos1;i++)

{

if(i == pos1) //第三 这个用于判断最后一个单词用 不然最后一个统计不上 

{

index++;

if(a[i-1] != ' ') // 如果前面为空格的话 在第二步里面的已经概括了 这个重复了 你可以用 最后单词是一个来试 

b[index] = ans + 1;

else b[index] = ans;

}

if(a[i] == ' ')  // 第一步  

{

if(a[i-1] == ' ') continue; //判断 如果前面也是空格 直接跳过 解决多个空格在一起的情况 

flag = 1;//标记 

index++;

b[index] = ans; // 将步数存放在数组中 

}

else if(flag == 1)//第二 

{

flag = 0;

ans = 1;  // 这个已经把空格后面的第一次概括了 所以ans = 1 

}

else ans++; //这个是不是空格来计算字符个数 

}

int pos = 1;

while(b[pos]==0&&pos<=index) pos++;//去除先输入空格的情况 去除前导0 

for(int j = pos ;j < index;j++)

printf("%d,",b[j]);

cout << b[index];// 正常输出 

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »