我正在做一個c插入排序,它工作正常,除了排序後第一個數字總是一個奇怪的負數和程序錯誤了。c插入排序錯誤
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void insertionSort(int list[], int last){
int hold;
int walker;
int current;
int count;
count = 0;
for (current = 1; current <= last; current++){
hold = list[current];
for (walker = current - 1;
walker >= 0 && hold < list[walker]; walker--){
list[walker + 1] = list[walker];
}
list [walker + 1] = hold;
count++;
}
printf("\n\nHow many passes to sort?\n%d\n\n", count);
return;
}
int main(int argc, char *argv[])
{
int numbers[100];
int i;
srand(time(NULL));
for (i = 0; i < 100; i++){
numbers[i] = rand() % 100;
}
printf("Unsorted Numbers\n-------- -------\n");
for (i = 0; i < 100; i++){
printf("%d,", numbers[i]);
}
insertionSort(numbers, 100);
printf("\nSorted Numbers\n-------- -------\n");
for (i = 0; i < 100; i++){
printf("%d,", numbers[i]);
}
system("PAUSE");
return 0;
}
仍然沒有它後,我改變它 – shinjuo
你是否經歷了其他類型的?例如,walker = current - 1;當電流爲0時將爲-1,並且內部循環將永遠不會被訪問。 –
無論我怎麼改變它說變量'數字'周圍堆棧損壞 – shinjuo