c语言打印输入单词长度的直方图
时间: 2024-11-03 19:23:19 浏览: 51
在C语言中,打印输入单词长度的直方图通常涉及到两个步骤:收集数据和绘制直方图。这里是一个简单的示例,说明如何实现这个功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 50
void printHistogram(int counts[], int max) {
for (int i = 0; i <= max; ++i) {
if (counts[i] > 0) {
printf("%d: ", i);
for (int j = 0; j < counts[i]; ++j)
printf("*");
printf("\n");
}
}
}
int main() {
char input[100];
int wordLengths[MAX_LENGTH] = {0};
int maxLength = 0;
// 输入单词并计算长度
while (fgets(input, sizeof(input), stdin)) {
input[strcspn(input, "\n")] = '\0'; // 移除行尾的换行符
int length = strlen(input);
wordLengths[length]++;
maxLength = (maxLength > length ? maxLength : length);
}
// 打印直方图
printHistogram(wordLengths, maxLength);
return 0;
}
```
这个程序首先定义了一个数组`wordLengths`来存储每个单词长度出现的次数,然后通过循环读取用户输入的单词,计算其长度,并更新相应位置的计数。最后,`printHistogram`函数遍历数组,打印出每个长度及其对应的星号数目,形成直方图。
阅读全文