新人求解一道C语言问题!!!!

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

首先先开一个数组,把斐波那契数列存到数组里,然后再读入两个数字m和n,寻找数组中满足条件数字,输出来

 #include<stdio.h>
int main()
{
    int f[100];
    int m, n, i;

    f[0] = 1; f[1] = 1;
    for (i = 2; i < 100; i++)f[i] = f[i - 1] + f[i - 2];

    scanf("%d%d", &m, &n);

    for (i = 0; f[i] < m; i++);
    for (; f[i]<n; i++) printf("%d ",f[i]);

    return 0;
}

程序有些小毛病没有太细致的修改。比如斐波那契数列后续的数目越来越大,int很有可能存不下,如果m和n比较大的话会出错。如果出现这种情况,建议你用long或者更大的数来存。再有,我默认了m比较小而n比较大。如果程序有其他要求或条件的话,需要进行相应的修改

ok,解决请采纳

#include <stdio.h>

int main()
{
int f1=1,f2=1,f=2;
int m,n;
scanf("%d%d",&m,&n);
//获取输入的m,n的值
while(f<=n){
if(f>m){
printf("%d ,",f);
//输出
}else{

}
f1=f2;
f2=f;
f=f2+f1;//数据交换

}
   return 0;
}