У меня есть программа, которую я хотел бы динамически выделить массив, который заполняется пользователем через строку аргумента терминала в Linux. После того, как пользователь введет числа, массив чисел должен быть отсортирован.
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
int array[100];
int count = 0;
while(1){
printf("please enter a number: \n");
scanf("%d", &i);
if(i == 0){
for (int k = 0; k < count -1; k++) {
if(array[k] <= array[k + 1]){
int temp = array[k];
array[k] = array[k+1];
array[k+1] = temp;
}
}
for (int j = 0; j < count; ++j)
{
printf("%d ", array[j]);
}
printf("\n");
break;
} else {
array[count] = i;
count++;
}
}
}
Это сортирует массив только в том случае, если я набираю цифры от низкого до высокого, но если я ввожу цифры от высокого до низкого, например. 4, 3, 2 и затем 1, он печатает 2, 3, 1 и затем 4 вместо 1,2,3,4, которые он делает, если я набираю его таким образом.
Я не хочу инициализировать массив с 100, я просто не могу заставить его работать, если я не инициализирую его. Я хочу, чтобы это было увеличено в случае необходимости.
Спасибо:)