原题链接:蓝桥杯算法提高VIP-单词个数统计
文章中的单词都是用空格间隔开的,换句话说,单词数=空格数+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分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复