用C语言写出:输入若干个单词,输出它们的平均长度,保留两位小数。单词只包含大写字母和小写字母,单词前后都可能有一个或者多个空格隔开。请使用循环和数组实现。
时间: 2024-05-09 07:17:49 浏览: 84
C语言程序设计-输入一行字符,分别统计出英文大小写字母、空格、数字和其他字符的个数
5星 · 资源好评率100%
好的,以下是代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[1000]; // 输入的字符串
char word[1000]; // 暂存单个单词
int len = 0, count = 0; // len 记录所有单词长度之和,count 记录单词数
printf("请输入若干个单词,用空格隔开:\n");
fgets(input, sizeof(input), stdin); // 获取用户输入的字符串
int i = 0, j = 0;
while (input[i] != '\0') { // 遍历字符串
if (input[i] != ' ') { // 如果当前字符不是空格,则存入 word 数组
word[j] = input[i];
j++;
} else { // 如果当前字符是空格,则表示一个单词结束
word[j] = '\0'; // 在 word 数组末尾添加字符串结束标志'\0'
len += strlen(word); // 将该单词长度加入 len 中
count++; // 单词数加一
j = 0; // 清空 word 数组,准备存储下一个单词
}
i++;
}
if (j > 0) { // 处理最后一个单词
word[j] = '\0';
len += strlen(word);
count++;
}
if (count > 0) { // 避免除数为零的情况
printf("平均长度为:%.2f\n", (float) len / count);
} else {
printf("未输入任何单词!\n");
}
return 0;
}
```
希望能对您有所帮助。
阅读全文