#define _CRT_SECURE_NO_WARNINGS #include #include #include #include int main(int argc, char* argv[]) { system("chcp 1251>null"); if (argc != 4) { printf("Неверное количество аргументов.\n"); return 1; } float a = atof(argv[1]); float b = atof(argv[2]); float c = atof(argv[3]); FILE* output_file = fopen("output.txt", "w"); if (output_file == NULL) { printf("Файл для вывода не найден.\n"); return 1; } if (a == 0) { fprintf(output_file, "Это не квадратное уравнение\n"); fclose(output_file); return 0; } //для проверки данных /*printf("Получено аргументов: %d\n", argc); for (int i = 0; i < argc; i++) { printf("argv[%d] = %s\n", i, argv[i]); }*/ float discriminant = b * b - 4 * a * c; int rootCount = 0; if (discriminant > 0) { float x1 = (-b + sqrt(discriminant)) / (2 * a); float x2 = (-b - sqrt(discriminant)) / (2 * a); fprintf(output_file, "Дискриминант:\n%.1f\n", discriminant); fprintf(output_file, "Два действительных корня:\nx1 = %.1f\nx2 = %.1f\n", x1, x2); rootCount = 2; printf("В файл output.txt записаны два действительных корня"); } else if (discriminant == 0) { float x = -b / (2 * a); fprintf(output_file, "Дискриминант:\n%.1f\n", discriminant); fprintf(output_file, "Один действительный корень:\nx = %.1f\n", x); rootCount = 1; printf("В файл output.txt записан один действительный корень"); } else { fprintf(output_file, "Корней нет, причина -> "); fprintf(output_file, "Дискриминант:\n%.1f\n", discriminant); rootCount = 0; printf("В файле output.txt нет корней"); } fclose(output_file); return rootCount; }