全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:821
推到 Plurk!
推到 Facebook!

C語言的指標排列問題...

答題得分者是:justdo
dragonliu01
一般會員


發表:19
回覆:16
積分:7
註冊:2004-12-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-23 15:34:21 IP:134.208.xxx.xxx 未訂閱
題目是將array中的數值排列,若比povit小或等於在前面(順序沒差),大於povit在後面 ,例如array[5]={5,4,3,2,1},povt=3 則要印出1 2 3 4 5 請問我的程式碼哪裡有錯阿?? #include #include #include void split(int *,int , int );
int main(void){    int length=5;
int array[100]={5,4,3,2,1};
int pivot=3; 
int i=0; 
split(array,length, pivot);         for(i=0;i        發表人 - dragonliu01 於 2004/12/23  19:53:41    發表人 - dragonliu01 於 2004/12/23  19:55:24
        
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-23 16:48:20 IP:202.145.xxx.xxx 未訂閱
標題無意義,請盡速修改為有意義之標題 若未修改,三日後刪除    新進會員請詳讀 本站使用規定說明
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-23 22:09:04 IP:221.169.xxx.xxx 未訂閱
我在猜,原本這個程式是用來處理字元的 裡面有許多運算式對char*型態的資料是有效的,對int*卻是無效的!    主要問題都出在split函式,簡單的說一下你的程式有哪些問題 1.a1和a2沒有配置記憶體空間,*(a1+p)會存取到非法的記憶體空間   簡單的解決方式是改成int a1[200], a2[200]; 2.判斷數列是否結束,不能用*(array+i) != '\0',char*的結尾才是'\0'   int陣列已經知道長度了,直接用
for (int j=0; j即可
3.strcat是複製某段字串到某段字串後面,不能用在int身上,所以連同後面的複製回array的程式碼,改成把a1的陣列p個寫到array去,接著把a2陣列r個寫到array去。        發表人 - justdo 於 2004/12/23  22:10:29
        
系統時間:2024-06-28 19:07:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!