为什么即使分配了值,此函数也返回0? (C)

时间:2018-10-30 11:50:34

标签: c function return return-value

下面是代码。当我对其进行测试时,由于某种原因,它始终返回0。

float compute_personal_allowance ( float annualSalary ) 
{
    int pa = 0;
    if (annualSalary <= 100000)
        pa == 11850;
    else if (annualSalary > 100000)
        pa == 11850 - 1 * ((annualSalary - 100000)/2);
    return pa;
}

我使用以下方法进行测试:

  

gcc -lm -std = c99 -o

2 个答案:

答案 0 :(得分:3)

您的问题就在这里

pa == 11850 - 1 * ((annualSalary - 100000)/2);

==不进行分配,而是进行比较。因此,在这种情况下,这实际上没有任何作用。计算结果为10,然后丢弃该结果。您需要的是

pa = 11850 - 1 * ((annualSalary - 100000)/2);

答案 1 :(得分:2)

要完整:pa的第一次分配是错误的:

float compute_personal_allowance ( float annualSalary ) 
{
    int pa = 0;
    if (annualSalary <= 100000)
        pa = 11850;
    else if (annualSalary > 100000)
        pa = 11850 - 1 * ((annualSalary - 100000)/2);
    return pa;
}