文章中的单词都是用空格间隔开的,换句话说,单词数=空格数+1。


程序不认识单词,但是程序认识空格。这样,整个问题实际上转换成了统计文章中的空格数。


可以使用指针写。也可以使用数组写




第一种方法 使用指针

// 禁用特定于 Visual Studio 的警告,允许使用标准C库函数
#define _CRT_SECURE_NO_WARNINGS

// 包含标准输入输出库头文件
#include <stdio.h>

// 包含字符串处理库头文件
#include <string.h>

// 包含数学库头文件,尽管在代码中未使用
#include <math.h>

int main() {
    char ch[80];      // 声明一个字符数组用于存储输入的字符串,最大长度为80
    fgets(ch, 80, stdin); // 从标准输入读取字符串,存储在ch数组中

    char* p = ch;      // 声明一个字符指针p,指向字符数组ch的第一个字符
    int len = strlen(ch); // 计算输入字符串的长度

    int count = 0;     // 初始化一个用于计数空格的变量

    for (int i = 0; i < len; i++) {
        if (*(p + i) == ' ') // 如果当前字符是空格
            count++;        // 增加空格计数器
    }

    // 输出单词的个数,这里使用count+1是因为单词之间的空格数量比单词数多1
    printf("%d", count + 1);

    return 0; // 返回0表示程序成功执行
}


第二种方法 使用数组

// 禁用特定于 Visual Studio 的警告,允许使用标准C库函数
#define _CRT_SECURE_NO_WARNINGS

// 包含标准输入输出库头文件
#include <stdio.h>

// 包含字符串处理库头文件
#include <string.h>

// 包含数学库头文件,尽管在代码中未使用
#include <math.h>

int main() {
    char ch[80];      // 声明一个字符数组用于存储输入的字符串,最大长度为80
    fgets(ch, 80, stdin); // 从标准输入读取字符串,存储在ch数组中

    int len = strlen(ch); // 计算输入字符串的长度

    int count = 0;     // 初始化一个用于计数空格的变量

    for (int i = 0; i < len; i++) {
        if (ch[i] == ' ') // 如果当前字符是空格
            count++;        // 增加空格计数器
    }

    // 输出单词的个数,这里使用count+1是因为单词之间的空格数量比单词数多1
    printf("%d", count + 1);

    return 0; // 返回0表示程序成功执行
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论