Упорядоченное заполнение массива. Найти ошибку

Пример работы кода

введите сюда описание изображения

Упорядоченное заполнение массива. Пользователь сам вводит массив в порядке убывания, написал как я представляю это, но где-то что-то не то, запускается, но выполняется некорректно.

По переменным:

mas1 - массив

n1 - размерность массива

vvod - число введенное пользователем

int i = 1;
  while ( i < (n1 +1)) {
   int vvod;
   printf("%d element = ", i );
   scanf_s("%d", &vvod);
   if ( i == 1)
     mas1[0] = vvod;
   else {
    if (vvod < mas1[(i - 1)]) 
     mas1[i] = vvod;
    else 
    {
     i--;
    }
   }
   i++;
  }

Ответы (1 шт):

Автор решения: MBo

А если так попробовать, а то "две шаги назад и шаг вперёд" кого хочешь запутают:

int vvod, count = 0;
while (count < n1) {
   do {
      printf("%d element = ", count);
      scanf_s("%d", &vvod);
   }  while ((count > 0) && (vvod >= mas1[count-1]));
   mas1[count++] = vvod;
}
→ Ссылка