Re: [問題] 有關於動態記憶體配置

看板C_and_CPP (C/C++)作者 (不再在乎)時間15年前 (2010/10/02 12:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
感謝loveme00835大大的指點,排序程式如下 #include<stdio.h> #include<stdlib.h> int num[5]={96,4,9,6,55}; int ans[5]={0}; int n=5; int aa=0; int i=0; int j=0; int cond=1; int flag=0; void change(k){ flag++; aa=ans[k-1]; ans[k-1]=ans[k]; ans[k]=aa; } void sort(int len){ for(i=1;i<=len;i++){ if (ans[i]<ans[i-1]) { change(i); for(j=(i-1);j>=0;j--){ if(ans[j]<ans[j-1]) change(j); if(ans[j-1]>ans[j-2]) break; } } } } void print_ans(int len){ for(i=0;i<=(len-1);i++){ printf("%3d",ans[i]); } } void print_num(int len){ for(i=0;i<=(len-1);i++){ printf("%3d",num[i]); } } int main(){ for(i=0;i<=n;i++){ ans[i]=num[i]; } sort(n); printf("series is\n"); print_num(n); printf("\n"); printf("answer is\n"); print_ans(n); printf("\n"); printf("資料交換%d次\n",flag); system("pause"); return 0; } 那以上我有試過很多種情況都是可以順利執行的...前輩您說的邏輯上有錯誤我也還在思考 再次感謝各位前輩解惑@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.218.117.45
文章代碼(AID): #1Cfg_WJz (C_and_CPP)
文章代碼(AID): #1Cfg_WJz (C_and_CPP)