解题思路: 先看第一二步 就是统计单词个数的简单变化 第三步仅仅考虑最后一个单词 可以先把前俩步弄懂 再看第三步
注意事项:先输入空格 和 后面空格 和最后一个单词的统计
参考代码:
#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 人评分
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1550 |
蓝桥杯历届试题-九宫重排 (C++代码)浏览:2812 |
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题9.1 (Java代码)浏览:481 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:484 |
文科生的悲哀 (C语言代码)浏览:1538 |
P1000 (C语言代码)浏览:911 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:561 |
1014题解浏览:524 |
WU-C语言程序设计教程(第三版)课后习题12.3 (C++代码)浏览:925 |