Перед нами типичная студенческая работа.
Первое, что нужно сделать,— вынести расчёт интеграла в отдельную функцию. Помимо прочего, она должна принимать параметром n — количество точек разбиения. И проверьте, разумеется, работоспособность.
Затем поднимаемся на более высокий уровень — налаживаем алгоритм выдерживания точности. Я бы написал так.
n := 10
yНовое := расчёт(n)
повтор
n := n·2
yСтарое := yНовое
yНовое := расчёт(n)
пока |yСтарое - yНовое| > эпсилон
вывести/вернуть yНовое
Сможешь перевести на Си?