基于用户输入的决策

时间:2018-09-22 14:39:43

标签: c cs50

我对编码非常陌生,目前正在edx上参加CS50课程(因此我现在正在学习C)。我正在尝试通过使用到目前为止所学的东西(当然,不是很多)来编写程序来练习,我想我可能会过度扩展。

我正在尝试写一个所得税计算器。我已经写了一个简单的脚本,它根据程序开始时输入的数量使用基本的if_else语句。现在,我正在尝试一个稍微复杂一些的方法。基本上,在程序开始时,会提示用户收入的类型是工资还是私人收入。根据答案,它选择一个方向,并将相关的if_else语句用于所得税括弧。我已经开始使用它了,但是不像我最初打算的那样。

当前,如果收入类型为薪水,则用户键入S。否则,用户键入P,并根据此输入,程序使用正确的括号。如我所说,括号根据收入类型而不同。

我想知道的是,如何编码我的程序以使用字符串(例如“ Salary”和“ Private”)而不是使用字符(“ S”和“ P”)?我确实花了几个小时在此上,但是根据我目前的知识,我不确定是否可以自己找到解决方案。

#include <stdio.h>
#include <cs50.h>


int main(void)
{
    char c = get_char("Income Type(S/P): ");
    int x = get_int("Your Income: ");
    int y;


    if (c == 'S')

    {

        if (x <= 14800)
            {
            y = x * 0.15;
            printf("Your Income Tax: %i\n", y);
            }

            else if ( x > 14800 && x <= 34000)
            {
            y = (14800 * 0.15) + (x - 14800) * 0.20;
            printf("Your Income Tax: %i\n", y);
            }

            else if ( x > 34000 && x <= 120000)
            {
                y = (14800 * 0.15) + ((34000 - 14800) * 0.20) + (x - 34000) * 0.27;
                printf("Your Income Tax: %i\n", y);
            }

            else
            {
                y = (14800 * 0.15) + ( (34000 - 14800) * 0.20) + ((120000 - 34000) * 0.27) + (x - 120000) * 0.35;
                printf("Your Income Tax: %i\n", y);
            }

    }

    else if (c == 'P')

    {

    if (x <= 14800)
    {
    y = x * 0.15;
    printf("Your Income Tax: %i\n", y);
    }

    else if ( x > 14800 && x <= 34000)
    {
    y = (14800 * 0.15) + (x - 14800) * 0.20;
    printf("Your Income Tax: %i\n", y);
    }

    else if ( x > 34000 && x <= 80000)
    {
        y = (14800 * 0.15) + ( (34000 - 14800) * 0.20) + (x - 34000) * 0.27;
        printf("Your Income Tax: %i\n", y);
    }

    else
    {
        y = (14800 * 0.15) + ( (34000 - 14800) * 0.20) + ((80000 - 34000) * 0.27) + (x - 80000) * 0.35;
        printf("Your Income Tax: %i\n", y);
    }

}
}

0 个答案:

没有答案