为什么没有输出,输出分子分母



#include
int main()
{
    char ch[16];
    int i=0;
    int x;
    while((ch[i]=getchar())!='\n'){
        if(ch[i]=='.'){
            x=i;
        }
        i++;
    }
    ch[i]='\0';
    for(i=0;ch[i]!='.';i++){
        printf("%c",ch[i]);
    }
    printf(" ");
    double sum=0;
    double t=0.1;
    for(i=x+1;ch[i]!='\0';i++){
        sum=(ch[i]-'0')*t+sum;
        t*=0.1;
    }
    printf("%f",sum);
    double m,n;
    int number=0;
    for(m=1;;m++){
        if(number==1){
            break;
        }
        for(n=m+1;;n++){
            if(n/(m*1.0)==sum){
                number=1;
                printf("%f %f",m,n);
                break;
            }
            else if(n/(m*1.0)number=0;
                break;
            }
            else{
                number=0;
                continue;
            }
        }
    }
    
    
    
    
    
    
    
    
    
    
    
    return 0;
}

算分数的,后面我用break了,为什么还没有输出

你输入的是什么呢

因为精度问题,小数不适合判断相等,if(n/(m*1.0)==sum)条件不会成立,所以number不会是1就不会跳出循环