Создается, так сказать, массив, длину которого вводите вы. Затем вы его заполняете. В цикле происходит сортировка чисел массива от меньшего к большему(если число слева больше числа справа, то поменять их местами) и выводится на экран первые два числа, то есть 2 наименьших числа массива.
Однако тупо реализовано создание массива. Неважно сколько вы впишете длину массива(<100), он все равно будет занимать память на 100 символов, а это очень глупо. Для создания динамических массивов(массивы , размеры которых РЕАЛЬНО указываете вы сами) используйте указатели.