Сильно будет смущать, если ограничена максимальная длина строки?
Если не смущает, то делаем буфер и в него построчно читаем. Про функцию fgets чего не почитал?)
Код
const int maxlen=100;
char buffer[maxlen];
int i, count=0;
while(fgets(buffer, maxlen, stdin))
{
  count++;
  for(i=0;i<n;i++)
  {
    if(arr[i]==count)
    {
        process(buffer);
        break;
    }
  }
  printf(buffer);
  if(buffer[strlen(buffer)-1]=='.') break;
}

Я бы как-то так написал...

return 0 не надо спешить делать...
пользователю-то надо показать, как программа отработала?

Насчёт кусочка кода - в нём конвертируется строчка в число) В этом варианте такого делать не надо)