Помогите, пожалуйста . Я написала код для ввода всех данных ,но у меня не получается вывести те числа,которые нужно в задание и поменять их местами

Мое задание:Найти 2 первых элемента в массиве С(n), значения которых не попадают в заданный с клавиатуры диапазон [a, b]. Поменять их местами.Помогите, пожалуйста.Код:

{
 int choice; //обраний пункт меню
 double arr_C[100]; //одновимірний масив c
 int n; //кількість елементів масиву c
 double a, b; 
 int j;
 double k;
 
 //введення кількості елементів масиву B
 printf("\nУведіть кількість елементів масиву C(n)-(максимум 100) = ");
 
 while (1)
 { 
   if (scanf("%d", &n)!=1 || n <= 0)
   {
     //якщо не виконуються умови-виведення запиту на повторне введення
     printf("Ви ввели неправильне значення. Спробуйте ще раз:\n");
     while(getchar() != '\n') //очистка буфера вводу та очікуання на правильний результат
     continue;
   }
   else if (n > 100)
   {
     //якщо переповнення масиву-виведення запиту на повторне введення
     printf("Забагато елементів. Спробуйте ще раз:\n");
     while(getchar() != '\n') //очистка буфера вводу та очікуання на правильний результат
     continue;
   }
   else
     break;
 }
 //введення елементів масиву B
 for (int i = 0; i < n; i++) {
   printf("arr_C[%d] = ", i);
   while (scanf("%lf", &arr_C[i])!=1)
   {
     //якщо не виконуються умови-виведення запиту на повторне введення
     printf("Ви ввели неправильне значення. Спробуйте ще раз:\n");
     while(getchar() != '\n') //очистка буфера вводу та очікуання на правильний результат
     continue;
   }
 }
 a = DInput("Введіть a:");
 b = DInput("Введіть b:");
 
 k=0;
 for (j=0; j<n; j++)
     if ((arr_C[j]<a)&&(arr_C[j]>b))
         k++;
 printf ("\nЕлементи ,які не входять в проміжок[a,b] = %.2f\n", k); //виведення результату)```

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

Автор решения: MBo
 if ((arr_C[j]<a)||(arr_C[j]>b)) {
     if (k == 0) idx = j;
     if (k == 1) {
       double t = arr_C[j];
       arr_C[j] = arr_C[idx];
       arr_C[idx] := t;  
       break; 
     }
     k++;
  }
→ Ссылка