寫了c 的求陣列的最大值問題的程式,編譯時出現stack flowout錯誤,求大神指點

2022-05-08 01:07:47 字數 866 閱讀 6351

1樓:

遞迴死迴圈了

問題出在這兩行:

int l=max_data(data,f,(f+l)/2); //求陣列左半部分的最大值

int r=max_data(data,(f+l)/2,l); //求陣列右半部分的最大值 當f = 0, l = 1時,(f+l)/2 = 0,計算r時再次呼叫max_data(0, 1),造成死迴圈 把r那行改成這樣就成了int r=max_data(data,(f+l)/2 + 1,l); //求陣列右半部分的最大值

2樓:

int r=max_data(data,(f+l)/2,l); //求陣列右半部分的最大值

//改為:

int r=max_data(data,(f+l)/2+1,l); //(f+l)/2-----改為------>(f+l)/2+1。

3樓:匿名使用者

int max_data(int data,int f,int l)修改後:

#include

#include

#include

#include

using namespace std;

int max_data(int data,int f,int l)else

cout<

//生成陣列為data,其大小為datasizeint max;

max=max_data(data,0,datasize-1);

cout<<"2.陣列的最大值為:"<

4樓:聽海的聲音

棧溢位了 把它設小點

c語言程式設計求數的最大值,C語言程式設計求三個數的最大值

逗號不能表示邏輯 與 關係,把逗號換成 就可以了 你輸入的格式不對,你的scanf d,d,d 中間是以逗號格開的,所以你在輸入值的時候也要逗號格式,即在程式執行後輸入比如 10,36,9 你的程式中把兩處if x y,x z 中的逗號,改成 即if x y x z if y x y z 書上的例題...

求前n項和最大值,求數列前N項和的最大值,這個最大值是多少。求過程

由條件得到a1 39 2 d.可知d 0.而a20 1 2d.a21 1 2d.即a20 0.a21 0.所以s20是最大的 選s20,請放心採納。a n 1 a n k a 13 a 1 12k a 8 a 1 7k 3 a 8 5 a 13 3 a 1 7k 5 a 1 12k 2 a 1 39...

真三國無雙ol 關於無雙的最大值問題

無雙沒必要太長每個 都有臨界值,假設一把 無雙值在300 320能打20下,300就是臨界值,300往上到320之間多出無雙都是浪費的 因為300 和320一樣都只打20下,超過了就沒用了,不過無雙長點還是很有用的哦,很持久 確實有臨界值,無雙多的時候,你可以在使用無雙時持續按住l鍵,增加無雙時間 ...