C语言编程:实现单词长度直方图与垂直图练习1-13

需积分: 50 8 下载量 60 浏览量 更新于2024-09-11 收藏 1KB TXT 举报
在本练习中,你需要使用C语言编写一个程序,目的是创建两个类型的直方图:一个是单词长度的水平直方图,另一个是垂直直方图。该程序的目标是统计用户输入的单词中每个长度出现的次数,并以图形形式展示这些频率分布。 首先,让我们分析程序结构。`#include<stdio.h>`引入标准输入输出库,用于与用户交互。接下来,定义了一些字符常量,如`SIZE27`,用于数组大小限制,`WORD`用于表示单词,而`DG1-DG6`则是用于垂直直方图的特殊字符。 在`main()`函数中,程序初始化了数组`nw`,用于存储单词长度的计数,`nc`用于计数当前单词的字符数量,`z`用于判断是否在单词内部,`i`和`j`分别用于遍历数组和绘制直方图。用户通过`getchar()`函数输入单词,当遇到空格或换行符时,程序会统计单词长度并更新`nw`数组。 水平直方图部分,通过`for`循环遍历`nw`数组,打印出每个长度以及其对应的单词数量(`k`)。例如,`printf("%2d%4s%3d:",j+1,WORD,k)`显示单词编号、单词名和长度,然后用空格填充直到达到固定宽度。 垂直直方图则更为复杂,通过嵌套的`for`循环实现。外层循环`j`从数组大小减1到0,内层循环`k`遍历数组查找等于`j`长度的单词。如果找到,使用`DG3`字符表示,然后递减该位置的计数,否则打印`DG4`。这样,每一行代表一个单词长度,列上不同的字符表示该长度出现的次数。最后,添加分割线和结束字符。 总结,这个练习要求学生掌握如何在C语言中处理用户输入,统计数据,以及如何利用循环和条件语句实现直方图的绘制。这涉及到了字符串处理、数组操作以及控制流的运用。完成此练习有助于提升编程技能,特别是对C语言数据结构和输出格式化的理解。