对于主元素寻找count第一次减去c怎么换

if(count>0) count--; else{ c=A[i] count=1; } 这段当第一次count减为0的时候c就没有办法换啊

int majority(int A[],int n) 
{ int i,c,count=1; c=A[0]; 
for(i=1;i<n;++i)
{ 
    if(A[i]==c) 
        count++;
    else{ 
        if(count>0) 
            count--; 
        else{ 
            c=A[i]; 
            count=1; 
        } 
    } 
}

确实第一轮count=1 执行count--后变成0(前提是A[i]!=c,相等就会加一),进入i=2第二轮循环,说明这个程序就是这样

你可以这样写

if(count>0) {
    count--;
} 
else{ 
    c=A[i] count=1; //count<0时执行else
} 

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^