一道C语言编程问题求解答如何写呢

输出[m,n]范围内的所有斐波那契(Fibonacci)数,m,n这两个数由键盘输入。
【提示】
1,1,2,3,5,8,13,21,34,……这是斐波那契(Fibonacci)数列的前几项。斐波那契数列的特点:前两项均为1,后面任意一项都是其前面两项之和。
本实验虽然只要求输出在[m,n]范围内的斐波那契数,但是依然需要从第1个Fibonacci数开始依次得到下一个,并判断是否是需要输出的那个。
用一维数组的?怎么写 要有一维数组啊!!!!

while(f[i]<n){
       f[i+1]=f[i]+f[i-1];
        i+=1;
}
for(int j=0;j<f.length;j++){
if(f[i]>m){
        printf("%d ,",f[i]);
}else{
break;}
}

   #include <stdio.h>

int main()
{
int f[100];
f[0]=1,f[1]=1,f[2]=2;
int m,n;
scanf("%d%d",&m,&n);
//获取输入的m,n的值
int i=2;
while(f[i]<n){
    if(f[i]>m)
        printf("%d ,",f[i]);
        f[i+1]=f[i]+f[i-1];
        i+=1;
}

   return 0;
}

写一个for里面计算斐波那契数,里面嵌套两个if,一个判断是否输出,另一个判断break,似乎用不到数组…

int f[3];
f[0] = 1;
f[1] = 1;
f[2] = 0;
int i = 0;
while (f[i]<=n){
f[i] = f[(i+2)%3] + f[(i+1)%3];
if(f[i]>=m){
printf("%d ,",f[i]);
}
i = (i + 1) % 3;
}