这是一个比较复杂的题
至少我第一遍做的时候是感觉比较复杂的
我先想到的是数组,用数组接收数字
然后又想到了这个,就是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就代表了那个最大值。
最后依次输出即可。