我对编码非常陌生,目前正在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);
}
}
}