微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在if语句中使用float变量时出现意外输出

如何解决在if语句中使用float变量时出现意外输出

//这是我的代码

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int N;
    scanf("%d",&N);
    int i,ct=0;//ct is to count how many given inputs of W & H fulfill the if and else if conditional statements given below.
    float W,H,ratio;//W and H are width and rectangle of rectangle respectively.ratio is ratio b/w W&H.  
    for(i=0;i<N;i++)
    {
        scanf("%f%f",&W,&H);
        ratio=W/H;
        printf("%f\n",ratio);
        if(ratio==1.7)//this statement is not getting executed for some reason
        {
            printf("true\n");
            ct++;
        }
        else if(ratio>1.6)
        {
            if(ratio<1.7)
            ct++;
        }   
    }
    printf("%d",ct);
}

注意:当我输入以下内容

1 
10 1

假定的输出

ct=1

我的输出

ct=0 

// ratio是1.7,但是如果上面的语句没有执行,这就是ct没有更新的原因 我想知道上面的if语句出了什么问题。

解决方法

1.7可能是b1 1.700000001

如果(abs(ratio-1.7)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。