打印

如何判断多个变量中,变量值相同的最多的变量

[复制链接]
340|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无幻|  楼主 | 2018-6-29 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LEM, FOR, ce, EDA, TI
无线遥控按一下按键,就会连续发5个相同的码出去,接收到第一个码后就做判断,不接收剩下的4个码,但如果第一个码受到干扰的,那么码就不对,而我又只接收了第一个码做判断,这样数据就不正确,所以我想把所有码接收下来,再去判断出其中相同值最多的那个值作为接收到的标准数据。

请教学习后,思路是这样的。

int main()
{
        unsigned char c;
        int receivedata[5]={1,2,3,3,4};
        int element[5] = {-1,-1,-1,-1,-1};
        int sum[5] = {0,0,0,0,0};
        for(int i=0;i<5;i++)
        {
          for(int j=0;j<5;j++)
          {
                if(receivedata==element[j])    //判断是否与存好的变量相等
                {
                  sum[j]++;                      //相等则在sum[]相应的位置加1,表示有两个相同的变量
                  break;
                }
                else if(element[j]==-1)
                {
                  element[j]=receivedata;     //如果不相等,则为新变量,存入element中
                  sum[j]++;
                  break;
                }
          }
        }
        int max = sum[0];

        for(int i=0;i<5;i++)
        {
                if(sum>max)             //比较相同数量大小
                    max=sum;
        }
       for(int i=0;i<5;i++)
       {
        if(max==sum)
        {
                receive_dat[c]=element;   //保存相同变量最后的变量,可以是多个最多
                c++;
        }
      }


期待大神们给出最后的方法:

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

431

主题

436

帖子

0

粉丝