Особенностью задач асинхронной обработки массивов является то, что у каждого массива свой индекс, свой закон и диапазон его изменения. При программировании задач этого класса можно использовать как счетные циклы, так и циклы while или do-while, причем выбор зависит от того, каков закон изменения этих индексов и как легче организовать их изменение.
Пример 1
Дан массив А вещественных чисел. Переписать в массив С все отрицательные элементы массива А.
Рис. 1.  
int copy(float a[], float c[], int n) /* Функция копирует из первого массива
                                          во второй только отрицательные элементы,
                                          Возвращает размерность второго массива */
{
int i,j;
j=-1;
for(i=0;i<n;i++)
   if(a[i]<0)
     {j++;
      c[j]=a[i];
     }
return j;
}
Примечание 1
Используя возможности операции инкрементации языка Си, оператор if можно написать так:
if(a[i]<0)
   c(++j)=a[i];