[問題] 請問關於氣泡排序法的一點小問題

看板C_and_CPP (C/C++)作者 (阿傑)時間16年前 (2009/05/11 22:02), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
#include<stdlib.h> #include<stdio.h> #include<time.h> int main(void){ int a[100]; int i; int j; int tmp; srand(time(NULL)); for(i=0;i<=99;i++){ } for(i=0;i<=99;i++){ a[i]=rand(); } for(i=0;i<=99;i++){ for(j=99;j>=i;j--){ if(a[j]>=a[j+1]){ //由小排到大 tmp=a[j]; // a[j]=a[j+1]; // a[j+1]=tmp; // } // /**** if(a[j]<=a[j+1]){ tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; } ****/ } printf("%10d",a[i]); } printf("\n"); return 0; } 上述這段程式碼是用隨機亂數跑一百個數再用氣泡排序法排列完成 其中19~23行(我用"//"mark起來那部分)是要由小排到大 而24行~28行(我用/**** ****/mark起來那部分)我的用意是讓他由大排到小 雖然可以跑 的出來但卻會出現 c.exe發生問題,必須關閉,僅此致歉的視窗 請問是什麼原因呢 如果問題太笨 請見諒 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.77.79.134

05/11 22:16, , 1F
if(a[j]>=a[j+1]), a[j]=a[j+1], 當j=99會怎樣? a有多大?
05/11 22:16, 1F
文章代碼(AID): #1A2309lX (C_and_CPP)
文章代碼(AID): #1A2309lX (C_and_CPP)