c语言问题啊啊

2025-02-25 20:28:36
推荐回答(2个)
回答1:

#include "stdio.h"
int fib(int n){
    int a,b;
    for(a=b=1;n>1;b+=a,a=b-a,n--);
    return a; 
}
void PrintFN(int m,int n){
    int x,t,f;
    x=f=0;
    while(fib(++x)    while((t=fib(x++))<=n){
        printf(fib(x)        f++;
    }
    if(!f)
        printf("No Fibonacci number.\n");
}
int main(int argv,char *argc[]){
    int m,n;
    printf("Input m & n(int 0    if(scanf("%d%d",&m,&n)!=2 || m<1 || n>10000 || m>n){
        printf("Input error, exit...\n");
        return 0;
    }
    PrintFN(m,n);
    return 0;
}

运行样例:

回答2:

跳过if后的print语句,防止两次打印同一个数。
if 只有在第一次循环,index=1时才执行,而if中执行的内容又与if外的相同,所以要避免这种矛盾