#define _CRT_SECURE_NO_WARNINGS #include #include #include void output(char str[50]) { printf(str); } double quadratic_equation(int a, int b, int c) { char result[50]; double D = pow(b, 2) - 4 * a * c; if (a == 0) { double x1 = -c / b; sprintf(result, "%f\n", x1); output(result); } else if(D > 0) { if (D > 0) { double x1 = (-b + sqrt(D)) / (2 * a); double x2 = (-b - sqrt(D)) / (2 * a); sprintf(result, "%f,%f\n", x1, x2); output(result); } else if (D == 0) { double x1 = (-b) / (2 * a); sprintf(result, "%f\n", x1); output(result); } else { strcpy(result, "Корней нет\n"); output(result); } } else { strcpy(result, "Ложные данные\n"); output(result); } } double system_equations(int a1, int b1, int c1, int a2, int b2, int c2) { char result[50]; double D = a1 * b2 - a2 * b1; if (D == 0) { strcpy(result, "Ложные данные\n"); output(result); } else { double x1 = (c1 * b2 - c2 * b1) / D; double x2 = (a1 * c2 - a2 * c1) / D; printf("%f, %f\n", x1, x2); output(result); } } double factorial(int a) { char result[50]; if (a < 0 || (a*10)%10 != 0) { strcpy(result, "Ложные данные\n"); output(result); } else if (a == 0) { int F = 1; sprintf(result, "%d\n", F); output(result); } else { int F = 1; for (size_t i = 1; i <= a; i++) { F = F * i; } sprintf(result, "%d\n", F); output(result); } } void input(int n) { int result; if (n == 1) { int a, b, c; printf("Введите a, b, c\n"); scanf("%d%d%d", &a, &b, &c); quadratic_equation(a, b, c); } if (n == 2) { int a1, b1, c1, a2, b2, c2; printf("Введите a1, b1, c1, a2, b2, c2\n"); scanf("%d%d%d%d%d%d", &a1, &b1, &c1, &a2, &b2, &c2); system_equations(a1, b1, c1, a2, b2, c2); } if (n == 3) { int a; printf("Введите a\n"); scanf("%d", &a); factorial(a); } else { printf("Такого задания нет/неверно\n"); } } int main() { system("chcp 1251>nul"); while (1) { int n; printf("Выберите задачку для решения:\n1. Квадратное уравнение\n2. Система уравнений\n3. Факториал\n0. Выход\n"); scanf("%d", &n); input(n); } }