Сортировка 2D-массива с помощью пузырьковой сортировки немного отличается от сортировки одномерного массива. Этот пример может помочь с этой частью вашего вопроса.
Другие проблемы :
На основе этого раздела:
for(i = 0; i < row; i++)
matrix[i] = (int *) calloc(column, sizeof(int));
Строка в предыдущем разделе:
matrix = (int **) calloc(row, sizeof(int));
^
Следует выделить память для int *
matrix = calloc(row, sizeof(int *));
^
(Обратите внимание, что приведение для calloc()
также было удалено. В C приведение возврата [c ] [m] [re] allo c не рекомендуется .)
Также с методом rand () Я хотел, чтобы генерировать числа между (1, 1000000), но он не дает требуемый диапазон, любые предложения по поиску решения ?
(с учетом этот ответ )
rand()
расширен, чтобы обеспечить псевдо случайное распределение 1000000 уникальных значений:
unsigned long rand_ex(void);
int main(void){
srand(clock());
for(int i=0;i<100;i++)
{
printf("%10d: %10lu\n", i, rand_ex());
}
return 0;
}
unsigned long rand_ex(void)
{
unsigned long x;
x = rand();
x <<= 15;
x ^= rand();
x %= 1000001;
return x;
}