一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:"aaa","bb",‘c’。输入字符串,请计算字符串的所有碎片及所有碎片的平均长度。 所有碎片的平均长度 = 所有碎片长度之和/碎片个数C语言
时间: 2024-03-08 11:50:39 浏览: 93
统计一个由小写英文字母组成的字符串中各个小写英文字母出现的数量
好的,这是一个字符串处理问题。我可以用 C 语言来编写一个程序,来计算一个字符串的所有碎片及平均长度。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i, count = 0, sum = 0;
scanf("%s", str);
len = strlen(str);
i = 0;
while (i < len) {
int j = i + 1;
while (j < len && str[j] == str[i]) {
j++;
}
int frag_len = j - i;
printf("%.*s ", frag_len, &str[i]);
count++;
sum += frag_len;
i = j;
}
printf("\n平均长度为 %.2f\n", (float)sum / count);
return 0;
}
```
在这个程序中,我们首先读入一个字符串,然后遍历这个字符串,将相同的字符组成的碎片输出,并累加碎片的个数和长度。最后,我们可以通过总长度除以碎片个数来计算平均长度。
注意,我们使用了 C 语言中的字符串函数 `strlen` 来获取字符串长度,使用了 `printf` 函数的格式化输出来输出字符串的一部分。
阅读全文