musthavehair 2022-04-22 11:35 采纳率: 66.7%
浏览 22

请带佬伸出援助之手 不知道问题出在哪里 啥也输出不了

//众数—分治法


#include <bits/stdc++.h>
#include<algorithm>
using namespace std;
int a[100]; // 众数 
int b[100]; // 重数 

int mode(int c[],int l,int r) 
{
    int i,j,k=0;
    int mid;
    mid=(l+r)/2;
    i=l;
    j=r;
    for(;i<mid&&c[i]!=c[mid];i++);
    
    for(;j>mid&&c[j]!=c[mid];j--);
    
    a[k]=c[mid];
    b[k]=j-i+1;
    k++;
    
    if(b[k]>l-i && b[k]>j-r)
    {
        return k;
    }
    
    if(i-l>=b[k])
    {
        mode(c,l,i-1);
    }
    
    if(r-j>=b[k])
    {
        mode(c,j+1,r);
    }
    
}

int main()
{
    int n;
    scanf("%d",&n);
    
    for(int i=0; i<n; i++)
        scanf("%d",c[i]);

    sort(c,c+n);
    
    mode(c,0,n-1);
    int max=b[0];
    for(int i;i<k;i++)
    {
        if(b[i]>max)
        {
            max=b[i];
        }
    }

    for(int i;i<k;i++)
    {
        if(b[i]==max)
        {
            printf("%d %d\n",a[i],b[i]);
        }
    }
}
  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-04-22 14:31
    关注

    代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
    提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
    单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月22日

悬赏问题

  • ¥15 在hololens1上运行unity项目只有空窗口
  • ¥25 TABLEAU PREP无法打开
  • ¥15 关于#c语言#的问题:求完整代码条件好说
  • ¥15 (需要远程,AI不回)VB6二进制文件转换成功,但是C#转换总是失败
  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)
  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图