Небольшая рекомендация - указывайте типы аргументов в функциях и сами аргументы в прототипах:
int start_int();
int end_int(int start_int);
int calculate(int start_int, int end_int);
Решение - нужно переписать функцию calculate следующим образом:
- n++ нужно перенести в while, чтобы переменная n увеличивалась каждую итерацию.
- Установить начальное значение k в start_int, так как k - текущий размер популяции.
- Вместо start_int для обновления k использовать само значение k, по правилам обновления размера популяции
- Убрать printf, так как функция calculate должна находить количество итераций, его вывод лучше переместить в main.
- Убрать скобки вокруг return, оборачивать return в блок нет никакого смысла.
- Вернуть n вместо start_int.
int calculate(int start_int, int end_int) {
int k = start_int; //текущий размер популяции
int n = 0; //счетчик
do {
k = k + (k / 3) - (k / 4);
n++; //инкремент счетчика
} while (k < end_int);
return n; //возврат количества итераций
}