• Корректен ли данный код, возможна ли оптимизация?

    Niks1982
    @Niks1982 Автор вопроса
    Илья Николаевский
    Я верно внял советам? :)
    #include <stdio.h>
    #include <unistd.h>
    
    int main()
    {
        int chng, chngEx, valVAT; 
        double sumInVAT, sumNoVAT, sumVAT;
        while(1)
        {
            printf ("Введите ставку НДС (10, 18 или 20) либо ставку 0 для выхода из программы: ");
            scanf ("%d", &valVAT);
            printf("Выбранная ставка НДС - %d%%\n", valVAT);
            if (valVAT == 0)
            {
                printf ("Всего доброго!\n");
                break;	
            }
            else if ((valVAT != 10) && (valVAT != 18) && (valVAT != 20))
            {
                printf("\nОШИБКА! Укажите допустимую ставку налога.\n\n");
                sleep (1);
                continue;
            }
            else
            {
                printf ("Выделить НДС: введите 1\nНачислить НДС: введите 2\n");
                printf ("Выход из программы: введите 0\nВведите номер операции: ");
                scanf ("%d", &chng);
                switch (chng)
                {
                    case 0:
                        printf ("Всего доброго!\n");
                        return 0;
                    case 1:
                        printf ("Введите сумму, из которой необходимо выделить НДС: ");
                        scanf ("%lf", &sumInVAT);
                        sumVAT = sumInVAT / (100 + valVAT) * valVAT;
                        sumNoVAT = sumInVAT-sumVAT;
                        printf ("\nНДС в том числе составляет: %.2lf\nСумма без НДС: %.2lf\n\n", sumVAT, sumNoVAT);
                        printf ("Повторить? (1 - да, 0 - нет): ");
                        scanf ("%d", &chngEx);
                        if (chngEx == 1) {continue;}
                        else {printf ("Всего доброго!\n"); return 0;}
                    case 2:
                        printf ("Введите сумму, на которую необходимо начислить НДС: ");
                        scanf ("%lf", &sumNoVAT);
                        sumVAT = sumNoVAT * valVAT / 100;
                        sumInVAT = sumNoVAT + sumVAT;
                        printf ("\nНДС к начислению составляет: %.2lf\nСумма с НДС: %.2lf\n\n", sumVAT, sumInVAT);
                        printf ("Повторить? (1 - да, 0 - нет): ");
                        scanf ("%d", &chngEx);
                        if (chngEx == 1) {continue;}
                        else {printf ("Всего доброго!\n"); return 0;} 
                    default:
                        printf ("\nОШИБКА! Выберите допустимое значение.\n\n");
                        sleep (1);
                        continue;
                }
            }
        }
    }
  • Корректен ли данный код, возможна ли оптимизация?

    Niks1982
    @Niks1982 Автор вопроса
    Спасибо за советы, это ценно для меня.
    Заставить пользователя прочитать сообщение об ошибке?
    Да, примерно такой посыл, но больше - просто полевые испытания.
  • Проблемы с установкой некоторых pip [Errno29], что можно предпринять?

    Niks1982
    @Niks1982 Автор вопроса
    Спасибо за наводку, но хотелось бы решить проблему на этом экземпляре. Не судьба, видимо