用c语言编程:输入若干个单词,输出它们的平均长度。单词只包含大写字母和小写字母,用一个或多个空格隔开。
时间: 2024-03-07 21:47:39 浏览: 15
以下是使用 C 语言实现计算平均单词长度的代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int count = 0;
double sum = 0.0;
char c;
printf("请输入若干个单词,以空格分隔:");
// 读取输入
while ((c = getchar()) != '\n') {
if (isspace(c)) { // 如果是空格,单词数加一
count++;
} else {
sum++; // 否则,单词长度加一
}
}
count++; // 最后一个单词没有空格,需要加一
// 输出平均单词长度
if (count == 0) {
printf("没有输入任何单词!\n");
} else {
printf("平均单词长度为:%.2f\n", sum/count);
}
return 0;
}
```
该代码使用了 getchar() 函数来读取输入,并使用 isspace() 函数判断是否是空格。时间复杂度为 O(N),空间复杂度为 O(1)。
相关问题
输入若干个单词,输出它们的平均长度。单词只包含大写字母和小写字母,用一个或多个空格隔开。c语言代码实现
以下是一个简单的 C 语言程序,用于计算输入字符串中单词的平均长度:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[1000];
int len = 0, word_count = 0;
printf("请输入字符串:");
fgets(str, 1000, stdin);
for (int i = 0; i < strlen(str); i++) {
if (str[i] != ' ' && str[i] != '\n') {
len++;
} else {
word_count++;
}
}
printf("平均单词长度为:%.2f\n", (float)len / word_count);
return 0;
}
```
该程序从标准输入读取一个字符串,然后遍历字符串中的每个字符。如果遇到空格或换行符,则将单词计数器加 1,并将字符计数器清零。最后,程序将字符计数器除以单词计数器,得到平均单词长度,并将其输出到标准输出。
用C语言写出:输入若干个单词,输出它们的平均长度,保留两位小数。单词只包含大写字母和小写字母,单词前后都可能有一个或者多个空格隔开。请使用循环和数组实现。
好的,以下是代码:
```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;
}
```
希望能对您有所帮助。