文章中的单词都是用空格间隔开的,换句话说,单词数=空格数+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语言程序设计教程(第三版)课后习题6.5 (Java代码)浏览:1251 |
这可能是一个假的冒泡法浏览:1071 |
wu-淘淘的名单 (C++代码)浏览:1532 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:642 |
A+B for Input-Output Practice (VI) (C语言代码)浏览:575 |
Tom数 (C语言代码)浏览:581 |
C二级辅导-公约公倍 (C语言代码)浏览:537 |
简单的a+b (C语言代码)浏览:444 |
简单的a+b (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:522 |