Принятие решений на основе пользовательского ввода - PullRequest
0 голосов
/ 22 сентября 2018

Я очень новичок в кодировании и в настоящее время в начале курса CS50 по edx (поэтому я изучаю C на данный момент).Я пытаюсь попрактиковаться в написании программ на основе того, что я уже изучил (правда, не очень), и мне кажется, что я немного перерасходовал.

Я пытаюсь написать калькулятор подоходного налога.Я уже написал простой, который использует базовые операторы if_else в зависимости от суммы, введенной в начале программы.Сейчас я пытаюсь немного сложнее.Обычно при запуске программы пользователю предлагается указать, является ли тип дохода зарплатой или личным доходом.В зависимости от ответа он выбирает направление и использует соответствующие выражения if_else для скобок подоходного налога.Я получил его на работу, но не так, как планировал.

В настоящее время, если тип дохода - зарплата, пользователь вводит S. В противном случае пользователь вводит P и на основе этого ввода использует программуправильные скобки.Как я уже сказал, скобки различаются в зависимости от типа дохода.

Что меня интересует, так это то, как я могу кодировать свою программу, чтобы использовать строки (такие как «Зарплата» и «Частный») вместо использованиясимволы ('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);
    }

}
}
...