0
点赞
收藏
分享

微信扫一扫

直方图/冒泡排序/数组初始化

幸福的无所谓 2022-04-05 阅读 67
c++

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6LaFMzM4,size_20,color_FFFFFF,t_70,g_se,x_16watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6LaFMzM4,size_19,color_FFFFFF,t_70,g_se,x_16

 

 这是一个比较复杂的题

至少我第一遍做的时候是感觉比较复杂的

我先想到的是数组,用数组接收数字

然后又想到了这个,就是https://blog.csdn.net/qq_64744030/article/details/123954256?utm_source=app&app_version=5.3.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

想到了这里面的数组初始化,还有里面的那个头文件和函数。就想着不把每个数都存进数组里了,而是把每个输入的数作为的数组的下标,就是这个数字每出现一次,这个数字作为下标的那个数组的元素就加1。

因为数组已经初始化了,所以数组最开始的元素值都是0,所以加完之后最终的值就是每个不同的数字的个数。

但是,需要输出的是,从0到你所输入的数中最大的数,这些数出现的次数都要输出

例如,输入的数中最大的是3,那就要输出0出现了几次,1出现了几次,2出现了几次,3出现了几次。

以此类推。

设最大的那个数是w,那么就要再弄一个循环,依次输出a〔0〕到a〔w〕。

但,这个中怎么表示。

然后,我想到了再定义一个数组b。将每次输入的数字分别存入b〔i〕。

然后再求出b〔i〕的最大值,用b〔i+1〕表示出那个最大值。

也就是输出a〔0〕到a〔b〔i+1〕〕

但是不行。应该说直接用b〔i+1〕不行。

因为这个i是在是在它自己的那个循环里的,它有它自己代表的意思,好像还不是j和i的原因。

所以,我就找了中间变量q。

注意,q要在循环在定义,把那个最大值赋值给q,然后再在循环外把q的值给p,这样p就代表了那个最大值。

最后依次输出即可。

举报

相关推荐

0 条评论