编程输入一行文本,计算这行文本的单词平均长度。假设每个单词用至少一个空格或者标点(英文逗号、句号)隔开。使用C++ string类型。
时间: 2024-02-15 15:06:14 浏览: 250
好的,你可以使用以下代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string text;
getline(cin, text); // 输入一行文本
int wordCount = 1; // 初始化单词计数器为1,因为第一个单词前没有空格或标点
int lengthSum = 0; // 初始化单词长度总和为0
for (char c : text) {
if (c == ' ' || c == ',' || c == '.') { // 如果遇到空格或标点
wordCount++; // 单词计数器加1
} else {
lengthSum++; // 否则单词长度总和加1
}
}
double avgLength = (double) lengthSum / wordCount; // 计算平均长度
cout << "单词平均长度为:" << avgLength << endl;
return 0;
}
```
这段代码首先使用 `getline` 函数从标准输入读入一行文本,然后遍历该文本的每一个字符,如果遇到空格或标点就将单词计数器加1,否则将单词长度总和加1。最后计算平均长度并输出即可。
相关问题
编程输入一行文本,计算这行文本的单词平均长度。假设每个单词用至少一个空格或者标点(英文逗号、句号)隔开。
好的,我可以回答这个问题。首先,我们需要将输入的文本按照空格或标点符号进行分割,得到每个单词。然后,我们可以计算每个单词的长度,并将它们相加。最后,将总长度除以单词数,即可得到单词平均长度。需要注意的是,如果文本中存在连续的空格或标点符号,需要将它们视为一个分隔符处理。
编程输入一行文本,计算这行文本的单词平均长度。假设每个单词用至少一个空格或者标点(英文逗号、句号)隔开。C++
我可以回答这个问题。首先,我们需要将输入的文本按照空格或标点符号进行分割,得到每个单词。然后,计算所有单词的长度之和,再除以单词的总数,即可得到单词平均长度。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char text[100];
printf("请输入一行文本:\n");
fgets(text, sizeof(text), stdin);
int len = strlen(text);
int count = ;
int sum = ;
for (int i = ; i < len; i++) {
if (text[i] == ' ' || text[i] == ',' || text[i] == '.') {
if (i > && text[i-1] != ' ' && text[i-1] != ',' && text[i-1] != '.') {
count++;
}
} else {
sum++;
}
}
if (len > && text[len-1] != ' ' && text[len-1] != ',' && text[len-1] != '.') {
count++;
}
if (count > ) {
float avg = (float)sum / count;
printf("单词平均长度为:%.2f\n", avg);
} else {
printf("没有输入单词\n");
}
return ;
}
```
注意,这个代码只是一个示例,可能还有一些边界情况没有考虑到,需要根据实际情况进行修改和完善。
阅读全文