Re: [問題] 有關於動態記憶體配置
感謝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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):
2
11
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章