zyxmm 发表于 2022-10-13 10:54:16

为什么计算结果不对

#include<stdio.h>
#define r 0.1
int main()
{
        float I,P;
        scanf("%f",&I);
        if(I<=100000)
        {
                P=I*r;
        }
        if(I<=200000&&I>100000)
        {
                P=(I-100000)*(3/4*r)+100000*r;
               
        }
        if(I<=400000&&I>200000)
        {
                P=(I-200000)*(1/2*r)+100000*(3/4*r)+100000*r;
               
        }
        if(I<=600000&&I>400000)
        {
                P=(I-400000)*(0.3*r)+200000*(1/2*r)+100000*(3/4*r)+100000*r;
               
        }
        if(I<=1000000&&I>600000)
        {
                P=(I-600000)*(0.15*r)+200000*(0.3*r)+200000*(1/2*r)+100000*(3/4*r)+100000*r;
               
        }
        if(I>1000000)       
        {
                P=(I-1000000)*(0.1*r)+400000*(0.15*r)+200000*(0.3*r)+200000*(1/2*r)+100000*(3/4*r)+100000*r;
               
        }
        printf("%f",P);
        return 0;
       
}
输入500000,运行结果不对,为什么

henkuderen 发表于 2022-10-13 11:21:57

在这里1/2,3/4这样的表达式是否能得到你预想中的值呢

zyxmm 发表于 2022-10-13 11:31:44

henkuderen 发表于 2022-10-13 11:21
在这里1/2,3/4这样的表达式是否能得到你预想中的值呢

明白了,应该写成1.0/2和3.0/4
页: [1]
查看完整版本: 为什么计算结果不对