C语言实现单词长度直方图

这篇博客介绍了如何使用C语言实现单词长度直方图。作者分享了从正向到反向思维的转变,从无到有再到从有到无的思路。核心算法包括外层循环控制高度,内层循环控制宽度,通过if语句判断是否应画直方条。此外,还提到了求单词最大长度、画x轴和主函数的实现。建议读者亲手绘制直方图并理解代码逻辑。
摘要由CSDN通过智能技术生成

C语言实现单词长度直方图

讲一下自己的思路:刚开始一直在正向思维想这个直方图怎么去画完整,从无到有,所以一直在考虑怎么在从上往下画的时候依据高度来增加不同位置的图形,整个的思路是从无到有,是一个增加的过程,很麻烦
在这里插入图片描述
现在的想法:从有到无,是一个减的过程。
纵坐标为单词的个数,反映为直方条的高度。横坐标为1,2,3,4…默认为单词的输入顺序,代表对应的单词。
思路:1. 按最长的单词个数(对应为高度)去画在每一个横坐标(每个单词的坐标)上,这样就相当于一个嵌套for循环就行了。
2. 在内层for循环做每个位置的条件判断,只有当前正在画的高度满足小于等于这个位置的的高度(单词长度)时,才可以画,否则画空格代替。
不做任何处理的情况下,是把整个坐标轴画的满满的。当做了条件判断时,就减少了一些位置画图(就是那些不该画的位置),是一个
思考上的减的过程

在这里插入图片描述

测试结果图

在这里插入图片描述
在这里插入图片描述
有很多不完美之处,并且刚开始写代码,写的也不优美,轻喷,没时间修饰了,最重要的就是掌握这个从大到小的思想即可。
在这里插入图片描述

上核心代码

mlength 是单词的最长长度,num是单词的个数,data存放相应坐标的单词长度。

// 画y轴及直方条
void display_Y(int mlength,int num,int data[])//画Y轴及数据
{
   
	int i,j;	
	for(i=mlength+1;i >= 1; i--)//最外层循环,mlegth为单词的最长长度,加1是为了y轴高度比直方条的最高度再高一,不影响下面的比较
	{
   
		printf("\t\t\t%d-|", i);//每次都需要先画y轴,\t控制直方图的位置
		for(j=1;j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值