0

看代码

#include <stdio.h>

#define TAX 5   /* Defines percentage of tax for the year */

int main(void)
{
    float amount;
    float taxes;
    float total;

    printf("Enter the value of the amount: ");
    scanf("%f", &amount);

    taxes = (TAX / amount); 
    total = amount + taxes;

    printf("The total amount is: $%.2f",total);
    return 0;
}

这必须计算给定金额的 5% 的利息,我将公式税收替换为:税收 = (TAX / 金额) * 100
但是当我输入输入 i,e 金额小于 50 时,我得到愚蠢无意义的输出,什么是正确的公式,为什么我不知道如何处理较小的输入,谁能告诉我正确的方法。

我也想问一下风格,我为这个问题推出了程序,只是告诉我什么样的程序更好,我应该尽量减少变量数量还是应该在定义的 TAX 宏本身中直接计算税值。

#include <stdio.h>

#define TAX (5 / amount) * 100  /* Defines percentage of tax for the year */

int main(void)
{
    float amount;
    float total;

    printf("Enter the value of the amount: ");
    scanf("%f", &amount);

    total = amount + TAX

    printf("The total amount is: $%.2f",total);
    return 0;
}

看这个

#include <stdio.h>

#define TAX 5   /* Defines percentage of tax for the year */

int main(void)
{
    float amount;
    float taxes;
    float total;

    printf("Enter the value of the amount: ");
    scanf("%f", &amount);

    taxes = (TAX / amount) * 100;
    total = amount + taxes;

    printf("The tax on your amount is: $%f",total);
    return 0;
}

还有什么其他更好的方法来写这个,我应该如何得出一个公式,我仍然觉得它真的很简单,我不知道我为什么搞砸了。我已经从 C 编程 b KN King 一书中解决了很多练习,实际上几乎 90%,但是今天我想再次修改所有的概念,我被困在这件事上。

再次问题是:一个计算给定金额利率的程序,给定利率是5%,不难吧,尝试更小的金额值。

提前感谢所有提供建议和解决方案的人。

4

1 回答 1

1

所以,你的公式的问题在于,为了计算税收,你应该将税收百分比作为小数,然后乘以金额。因此,您需要取 5%,然后将其除以 100,使其成为十进制数。

就风格而言,您的第一个示例是最易读的,其变量名称可以“讲述一个故事”并准确显示您正在做什么。不过,我会消除该tax变量,除非您将其用于其他用途,因为它确实不需要。第二个是“坏的”,因为它假设有一个名为 的变量amount,如果你重用宏,它可能存在也可能不存在(如果你不重用它,为什么它首先是一个宏?) . 您可以使用带有参数的宏,但是您应该将其称为 CALCULATE_TAX 或其他名称,以便立即明显看出它正在计算某些内容,而不仅仅是一个常数。

无论如何,我会这样做:

#define TAX_RATE 0.05   /* Defines percentage of tax for the year as 5% (0.05) */

int main(void)
{
    double amount;
    double total;

    // Get the amount, there should be some error checking on the input though:
    printf("Enter the value of the amount: ");
    scanf("%f", &amount);

    // Calculate the total amount, with taxes and print it:
    total = amount + TAX_RATE * amount;
    printf("The total amount is: $%.2f",total);

    return 0;
}
于 2012-08-19T17:41:14.213 回答