我有一个数组,其输入由用户通过使用键盘给出。所有输入都存储在名为storeKeys的数组中。该阵列的索引是由可变storeKeysIndex保持被初始化为0,并且当一个键被按下,按下的键的值被存储在storeKeys阵列和递增的storeKeysIndex的值。让storeKeys有价值观在液晶显示屏上打印前三个重复元素
storeKeys = {3,2,5,7,1,1,9,9,9,1,3,1};
我想在液晶显示阵列中的前三名重复的元素。在上面的数组中,lcd应该显示1,9,3,因为'1'在上面的数组中重复四次,'9'重复三次,'3'重复两次。其他值不应该由LCD显示。
我试图计算每个元素的频率并将频率存储在数组中freq。我可以显示串行监视器中每个元素的频率。但我没有得到如何显示在液晶显示器(或在串行监视器)前三个重复的数字。代码如下:
for(int i=0; i<12; i++)
{
freq[i] = -1;
}
for(int i=0; i<12; i++)
{
count = 1;
for(int j=i+1; j<12; j++)
{
if(storeKeys[i] == storeKeys[j])
{
count++;
freq[j] = 0;
}
}
if(freq[i]!=0)
{
freq[i] = count;
}
}
for(int i=0; i<12; i++)
{
if(freq[i]!=0 && storeKeys[i] != NULL)
{
Serial.println(storeKeys[i]);
Serial.println(freq[i]);
Serial.println("==========");
}
}
上面的代码工作,但显示所有元素的频率。我只想显示前三个重复元素。
这里是链接模拟器在线:
https://circuits.io/circuits/5073094-the-unnamed-circuit/edit
感谢。
[WT ........](https://stackoverflow.com/questions/44363166/something-is-wrong-with-my-deletion) – LPs
什么意思是“前三个重复元素” ?最重复的,最高的数字值,最高的指数?对于超过3个重复数字的情况,这需要清楚。在你的例子中,它们按遇到的顺序显示。 –