printf("%d", i+1);
внутри цикла. [out, optional]
tree->left = readElement(tree->left);
return a
? Это вообще лишино смысла, возвращать в коде ошибки всей программы входное double число. </>
в редакторе). Иначе вопрос удалят за нарушение правил.
Что касается практического применения. Такового у просто задачи найти все циклы - я не вижу. Только как часть полного перебора для какой-то другой задачи, например той же задачи коммивояжера.