写一个程序,从键盘上读入一行文本,并计算该行中单词的平均长度。假设一行中的每个单词与下一个单词之间至少有一个空格。允许使用标点符号。使用C++字符串。
时间: 2024-05-06 10:20:58 浏览: 77
好的,我可以帮你解决这个问题。以下是C语言的代码实现:
```
#include <stdio.h>
#include <string.h>
int main() {
char line[1000];
int word_count = 0;
int char_count = 0;
printf("请输入一行文本:");
fgets(line, 1000, stdin);
for (int i = 0; i < strlen(line); i++) {
if (line[i] == ' ' || line[i] == '\n') {
if (char_count > 0) {
word_count++;
}
char_count = 0;
} else {
char_count++;
}
}
double avg_length = char_count > 0 ? (double)strlen(line) / (double)word_count : 0;
printf("该行中单词的平均长度为 %.2f\n", avg_length);
return 0;
}
```
这个程序中,我们使用 fgets 函数从标准输入读取一行文本,然后使用一个循环遍历每个字符,计算单词的数量和总字符数。最后根据这两个量计算出单词的平均长度,并输出结果。
需要注意的是,如果输入的只有一个单词而没有空格,那么程序会出现除以 0 的错误,因此在计算平均长度时需要进行判断。
阅读全文