c语言用递归法解决斐波那契数列问题

请问在用递归法解决斐波那契数列问题时
如何控制循环的开始与终止
比如如下实例:
 ⑴ 编写函数fun,其返回值类型为整型,有1个整型参数n。
      fun的功能为:使用递归方法计算斐波那契数列的第n项的值,并将其返回。
  ⑵ 编写主函数,其功能为:

      首先,输出提示信息:“斐波那契数列第10~30项:”;

      然后,在新的一行通过调用fun函数,来输出斐波那契数列第10项到第30项的值,每个数值输出域宽为8,每行最多输出5个数值。

修改for循环中的i的初始值和终止值,控制开始和结束


#include <stdio.h>
int fibonacci(int n) {
    if (n == 1 || n == 2) {
        return 1;
    } else {
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
}
int main() {
    int i;
    printf("斐波那契数列第10~30项:\n");
    for (i = 10; i <= 30; i++) {
        printf("%8d", fibonacci(i));
        if (i % 5 == 0) {
            printf("\n");
        }
    }
    printf("\n");
    return 0;
}