Мне нужно напечатать массив в порядке от наибольшего к наименьшему.Для простоты скажем, что это массив целых чисел.
Единственный способ, которым я могу думать, это сделать цикл по массиву, найти самый большой элемент, напечатать его и установить соответствующий логический флаг, чтобы он не печатался дважды.Есть ли лучший способ сделать это?
int *array;
// Fill array, malloc, all that good stuff
int i, j, max = 0, max_index = 0;
int isPrinted[ARRAY_SIZE] = {0};
for (i = 0; i < ARRAY_SIZE; i++) {
for (j = 0; j < ARRAY_SIZE; j++) {
if (isPrinted[j] == 0 && array[j] > max) {
max = array[j];
max_index = j;
}
}
isPrinted[max_index] = 1;
printf("%d", max);
max = 0;
}