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樓:聽海的聲音 棧溢位了 把它設小點 逗號不能表示邏輯 與 關係,把逗號換成 就可以了 你輸入的格式不對,你的scanf d,d,d 中間是以逗號格開的,所以你在輸入值的時候也要逗號格式,即在程式執行後輸入比如 10,36,9 你的程式中把兩處if x y,x z 中的逗號,改成 即if x y x z if y x y z 書上的例題... 由條件得到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... 無雙沒必要太長每個 都有臨界值,假設一把 無雙值在300 320能打20下,300就是臨界值,300往上到320之間多出無雙都是浪費的 因為300 和320一樣都只打20下,超過了就沒用了,不過無雙長點還是很有用的哦,很持久 確實有臨界值,無雙多的時候,你可以在使用無雙時持續按住l鍵,增加無雙時間 ...c語言程式設計求數的最大值,C語言程式設計求三個數的最大值
求前n項和最大值,求數列前N項和的最大值,這個最大值是多少。求過程
真三國無雙ol 關於無雙的最大值問題