當我執行程序時出現錯誤的輸出,我不知道可能是什麼原因造成的。插入排序的錯誤輸出
正如你可以在下面我有一個數組。然而在執行程序時,我得到的輸出:
array[0]=3
array[1]=1
array[2]=1
array[3]=5
array[4]=5
array[5]=8
顯然,這是不是我的預期輸出這將是{} -1,3,4,5,7,8-。我究竟做錯了什麼?
#include <stdio.h>
#include <stdlib.h>
#define l 6
void isnertionSort(int array[]);
int main(void)
{
int array[l]={3,4,1,7,5,8};
for(int i=0; i<l;i++) {
printf("array[%d]=%d\n", i, array[i]);
}
printf("\n");
isnertionSort(array);
for(int i=0; i<l; i++){
printf("array[%d]=%d\n", i, array[i]);
}
return 0;
}
void isnertionSort(int array[])
{
int j,key;
for(int i =1;i<l;i++){
key = array[i];
j = i -1;
while(j>0 && array[j]>key){
array[j+1]=array[i];
j--;//j=j-1
}
array[j+1]= key;
}
}
請學習如何調試程序(例如[如何調試小方案](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/))。您應該學習如何使用調試器,和/或添加打印語句來識別錯誤。在SO上,您應該提供一些樣本輸入數據以及預期和實際輸出(閱讀如何創建MCVE - [MCVE])。 –
看起來你在移動時覆蓋了數組中的元素。調試器是識別這些問題的好工具。 –
如果問題得到解決,請接受答案並收緊問題。您已收到類似的[建議](https://stackoverflow.com/questions/46758008/c-compiler-error-which-i-am-unable-to-locate#comment80461712_46758008)。請參閱[答案被接受時的含義是什麼?](https://stackoverflow.com/help/accepted-answer) – BLUEPIXY