万亿吨核聚变 2023-11-16 21:34 采纳率: 68.8%
浏览 5
已结题

请问一下哪里栈溢出了?

请问一下哪里栈溢出了?我的思路是采用哈希表来记录每个元素的出现频率,a代表元素最大值

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-17 08:39
    关注

    【相关推荐】



    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7624011
    • 这篇博客你也可以参考下:华为面试的一道题目 真的是佩服自己好菜,时间到了才做出来
    • 您还可以看一下 千锋老师的什么是云计算? 课程中的 杨哥知识普及小课堂之 什么是云计算?小节, 巩固相关知识点
    • 除此之外, 这篇博客: 一些零碎代码中的 输入字符串,调用函数取出字符串中最长的单词并存入另一个字符串。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      (有待思考)#define _CRT_SECURE_NO_WARNINGS
      #include
      #include
      #includeusing namespace std;
      void index(char* s1, char* s2)
      {
      int len ,max = 0;
      char temp[50];
      while (*s1)
      {
      while (*s1 == ’ ’ && *s1 != ‘\0’) s1++;//过滤空格;

      len = 0;
      while (*s1 != ' ' && *s1 != '\0')
      {    
          *(temp + len) = *s1;//不能用*temp=*s1,why?
          len++;
          s1++;
      }
      
      *(temp + len) = '\0';//注意这种方式。
      if (len > max)
      {
          max = len;
          strcpy(s2, temp);
      }
      
      if (*s1 == '\0') break;
      

      }}
      int main()
      {
      char s1[50],s2[50];cin.get(s1,50); index(s1, s2);
      ​ cout << “s2:” << s2;
      }用队列的方法输出杨辉三角:#include
      using namespace std;
      const int maxsize = 100;
      typedef struct {
      int Q[maxsize];//存放数据
      int front, rear;
      }sequeue;
      sequeue qu;
      void setkong(sequeue& qq)
      {
      qq.front = 0;
      qq.rear = 0;
      }//置队空
      void rudui(sequeue& qq, int x)
      {
      if (qq.front == (qq.rear + 1) % maxsize)
      cout << “overflow\n”;
      else
      {
      qq.Q[qq.rear] = x;
      qq.rear = (qq.rear + 1) % maxsize;
      }
      }
      void chudui(sequeue &qq, int& x)
      {
      if (qq.front == qq.rear)
      {
      cout << “underflow\n”;
      }
      else
      {
      x = qq.Q[qq.front];
      qq.front = (qq.front + 1) % maxsize;
      }
      }
      void getfront(sequeue qq, int &x)//读取队头元素
      {
      if (qq.front == qq.rear)
      {
      cout << “error!\n”;
      }

      else
      {
      x = qq.Q[qq.front];
      }
      }
      int empty(sequeue qq)//判断队列是否为空
      {
      if (qq.front == qq.rear)
      return 1;
      else
      return 0;
      }
      void yanghui(int n,sequeue qu)
      {
      int i, j,s,t;
      setkong(qu);
      rudui(qu, 1); rudui(qu, 1);
      cout << endl;
      cout.width(4); cout << 1;
      cout.width(4); cout << 1<<endl;
      for (i = 2; i <= n; i++)//生成并输出杨辉三角第i~n行的数据
      {
      rudui(qu, 1);
      cout.width(4); cout << 1;
      chudui(qu, s);
      for (j = 2; j <= i; j++)//处理第i行中间的各数据
      {
      chudui(qu, t);
      rudui(qu, s + t);
      cout.width(4); cout << s + t;
      s = t;

          }
          rudui(qu, 1);
          cout.width(4); cout << 1<<endl;
        
      }
      cout << endl;
      


      }
      int main()
      {
      int m;
      cin >> m;
      yanghui(m, qu);
      }


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月12日
  • 已采纳回答 12月4日
  • 创建了问题 11月16日