Так что мне нужно передать массив в сортировку функции и отсортировать ее, она работает снаружи, но не может заставить ее работать внутри функции. Нужно пройти в указателях, просто не знаете, как это сделать.Сортировка массива в функции C
#include <stdio.h>
void sort(int *number, int n) {
/* Sort the given array number, of length n */
int temp = 0, j, i;
for (i = 1; i < n; i++) {
for (j = 0; j < n - i; j++) {
if (number[j] > number[j + 1]) {
temp = number[j];
number[j] = number[j + 1];
number[j + 1] = temp;
}
}
}
}
int main() {
int n = 20;
int *ptr = malloc(n * sizeof *ptr);
int i = 0;
while (i < n) {
ptr[i] = rand() % 100;
i++;
}
int j = 0;
while (j < n) {
printf("%d , ", ptr[j]);
j++;
}
void sort(ptr, n);
printf("\n");
int x = 0;
while (x < n) {
printf("%d , ", ptr[x]);
x++;
}
}
внутри main(): 'void sort (ptr, n);' удалить пустоту или будет рассматриваться как объявление. – wildplasser
Вы забыли указать значение семени [srand()] (http://www.cplusplus.com/reference/cstdlib/srand/) –
Вы посмотрели qsort в stdlib? – danh