首页 > 其他分享 >PTA:7-3 统计一行文本的单词个数 c语言最简单代码

PTA:7-3 统计一行文本的单词个数 c语言最简单代码

时间:2022-12-24 06:11:06浏览次数:45  
标签:f1 f2 include PTA 单词 long 文本 空格

题目

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。


样例输入

Let's go to room 209.

样例输出

5

样例种类

问题分析

  1. 首先,我们这样思考如果一个单词后面有空格我们则单词数量++。设f1,f2分别表示是否出现了非空格字母,和空格字母,出现为1。
  2. 思考我们判定单词的方法,也就是空格出现前有字母出现,才能算一个.所以,我们执行以下代码if(c==' '&&f1) f2=1;
  3. 当有字母出现那肯定f1=1=f2=1,出现以后让f1=f2=0,重置状态,
  4. 特殊情况:就是句子最后不是空格结尾,是其他字母,那就要单词数量+1,最后一个单词没有算上嘛。用a[i]记录最后一个出现的 非EOF与'\n' 字符

AC代码

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
// #pragma GCC optimize(1)
// #pragma GCC optimize(2)
// #pragma GCC optimize(3,"ofast","inline")
#define ifor(i, l, r) for (int i = l; i <= r; ++i)
#define rfor(i, r, l) for (int i = r; i >= l; --i)
#define _SILENCE_CXX20_CISO646_REMOED_WARNING
typedef unsigned long long ull;
typedef long double doubleL;    
typedef long long ll;
const long long N = 2e+5;

int main()
{
    int f1=0,f2=0;
    char c;
    int total=0;
    int i=0;
    char a[1000];
    while((c=getchar())!=EOF)
    {
        
        if(c!=' ') f1=1; 
        //不需要如果不是就让f1=0,这样如果下一个字母是空格,直接就f1=0了,你就不知道空格前面的到底有没字母
        if(c==' '&&f1) f2=1;
        else f2=0;
        
        if(f2&&f1)
        { total++;f2=f1=0;}
        if(c!='\n') {a[i]=c;    i++;}//用于判断最后一个字符是不是可见字符,换行这些一定排除在外
    }
    if(a[i-1]!=' ')++total;//也就是说这个字符可以见
    printf("%d",total);
    return 0;
}

标签:f1,f2,include,PTA,单词,long,文本,空格
From: https://www.cnblogs.com/Archer-lian/p/17001946.html

相关文章

  • VUE 前端文本输出为超文本
    VUE的前端文本输出为超文本。但是我们希望的是页面能够自动将超文本进行转换。 ​​​​ 问题和解决{{blogContent.blogContent}}这种输出方式,VUE模板是不会将内容以HT......
  • VUE 前端文本输出为超文本
    VUE的前端文本输出为超文本。但是我们希望的是页面能够自动将超文本进行转换。  问题和解决{{blogContent.blogContent}}这种输出方式,VUE模板是不会将内容以H......
  • 【机器学习】李宏毅——Domain Adaptation(领域自适应)
    在前面介绍的模型中,一般我们都会假设训练资料和测试资料符合相同的分布,这样模型才能够有较好的效果。而如果训练资料和测试资料是来自于不同的分布,这样就会让模型在测试集......
  • 单词简绍
    engrainv vt.使根深蒂固;把…染成木纹色adj.根深蒂固的engrain v.使根深蒂固;把……染成木纹色;渗入(同ingrain);adj.根深蒂固的;网络短语:engrainwallpaper ......
  • WPF限制文本框只能输入数字
    在一个程序中有时候文本框需要添加限制,比如需要限制文本框只能输入数字,限制文本框只能输入数字和字母等等。先来介绍文本框只能输入数字<TextBoxPreviewTextInput="User......
  • 快速认识WKT文本标记语言的格式
    WKT用于表示矢量的几何空间图形  点:POINT(11)线:LINESTRING(34,1050,2025)面:POLYGON((11,51,55,15,11),(22,23,33,32,22))多点:MULTIPOINT(3.55.6,4......
  • js 将表格复制的文本转对象
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content......
  • uniapp富文本的使用
    <editorclass="richInputContent"id="editor"@input="getEditorContent"@ready="onEditorReady"v-model="html"></editor>methods:{//初始化富文本编......
  • 【PTA】1049 Counting Ones
    Thetaskissimple:givenanypositiveintegerN,youaresupposedtocountthetotalnumberof1'sinthedecimalformoftheintegersfrom1toN.Forexampl......
  • JS实现每隔几个字符添加字符(串):实现每间隔10个字就换行一次,多用于echarts横坐标的显
    //最直接一行代码搞定----------------------------------------'实现每间隔10个字就换行一次,多用于echarts横坐标的显示文本'.replace(/(.{10})/g,'$1\n')//灵活的方法实现......