我遇到了一小部分問題,它使得隨機數列表出現,然後shell將它們排序,現在它不會完成計算,這讓我想到該循環沒有完成。我得到了分段錯誤的錯誤,但我設法解決了一些問題,我如何訪問我的數組。無論如何,一套新的眼睛可能對我有好處。遇到問題外殼排序在C,無限循環
謝謝!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
printf("How long would you like to make the list? \n");
int list_length;
scanf("%d", &list_length);
int *number_list[list_length];
int random_number;
int i;
for(i=0; i<list_length; i++){
srand (time(NULL));
random_number = rand();
number_list[i] = random_number;
}
printf("Before: ");
printf("%d", &number_list[0]);
printf("\n");
shellSort(*number_list, list_length);
printf("After: ");
printf("%d", &number_list[0]);
printf("\n");
return 0;
}
void shellSort(int *A, int n){
int gap , i , j , temp;
for (gap = n/2; gap>0; gap /=2)
for (i=gap; i<n; i++)
for(i = i-gap; j>=0 && &A[j] > &A[j+gap]; j-=gap){
temp = &A[j];
A[j] = &A[j + gap];
A[j + gap] = temp;
}
}
你意識到你正在存儲int到一個指針數組嗎? – Mike 2013-03-04 14:14:33