请使用c语言,输入若干个单词,输出它们的平均长度,保留两位小数。单词只包含大写字母和小写字母,单词前后都可能有一个或者多个空格隔开。请使用循环和数组实现。
时间: 2023-06-25 16:05:04 浏览: 192
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[1000], word[100];
int len, count = 0, sum = 0;
double avg;
printf("请输入若干单词,以空格分隔:\n");
fgets(str, 1000, stdin); // 读入字符串
int i = 0, j = 0, n = strlen(str);
while (i < n) {
if (str[i] == ' ') {
if (j > 0) { // 如果当前单词不为空
word[j] = '\0'; // 在单词结尾加上结束符
len = strlen(word);
sum += len; // 累加单词长度
count++; // 统计单词个数
j = 0; // 清空单词缓存
}
} else {
word[j++] = str[i];
}
i++;
}
if (j > 0) { // 处理最后一个单词
word[j] = '\0';
len = strlen(word);
sum += len;
count++;
}
if (count > 0) {
avg = (double) sum / count;
printf("平均长度为:%.2f\n", avg);
} else {
printf("未输入任何单词!\n");
}
return 0;
}
```
解释:
1. 首先定义一个字符串 `str` 和一个单词缓存 `word`
2. 读入字符串 `str`
3. 遍历字符串 `str`,如果遇到空格,就将单词缓存 `word` 中的内容作为一个单词处理,统计单词个数和总长度,然后清空单词缓存;如果遇到非空格字符,就将其加入单词缓存中。
4. 处理最后一个单词
5. 计算平均长度,并输出结果
阅读全文