#define _CRT_SECURE_NO_WARNINGS #include #include #include #include int main(int argc, char* argv[]) { FILE* input_file, * output_file; double a, b, c, discriminant, x1, x2; int num_roots; system("chcp 1251 > nul"); // Открываем файл для чтения коэффициентов input_file = fopen("coefficients.txt", "r"); if (!input_file) { fprintf(stderr, "Ошибка открытия файла coefficients.txt\n"); return 1; } // Считываем коэффициенты if (fscanf(input_file, "%lf %lf %lf", &a, &b, &c) != 3) { fprintf(stderr, "Некорректный формат входных данных\n"); fclose(input_file); return 1; } fclose(input_file); // Проверяем корректность коэффициентов if (a == 0 && b == 0) { fprintf(stderr, "Невозможно решить уравнение, оба коэффициента a и b равны 0\n"); return 1; } // Открываем файл для записи результатов output_file = fopen("results.txt", "w"); if (!output_file) { fprintf(stderr, "Ошибка открытия файла results.txt\n"); return 1; } // Вычисляем дискриминант discriminant = b * b - 4 * a * c; // Определяем количество корней if (discriminant > 0) { num_roots = 2; x1 = (-b + sqrt(discriminant)) / (2 * a); x2 = (-b - sqrt(discriminant)) / (2 * a); fprintf(output_file, "Дискриминант: %.2f\nКоличество корней: 2\nКорень 1: %.2f\nКорень 2: %.2f\n", discriminant, x1, x2); printf("Дискриминант: %.2f\nКоличество корней: 2\nКорень 1: %.2f\nКорень 2: %.2f\n", discriminant, x1, x2); } else if (discriminant == 0) { num_roots = 1; x1 = -b / (2 * a); fprintf(output_file, "Дискриминант: %.2f\nКоличество корней: 1\nКорень: %.2f\n", discriminant, x1); printf("Дискриминант: %.2f\nКоличество корней: 1\nКорень: %.2f\n", discriminant, x1); } else { num_roots = 0; fprintf(output_file, "Дискриминант: %.2f\nДействительных корней нет.\n", discriminant); printf("Дискриминант: % .2f\nДействительных корней нет.\n", discriminant); } fclose(output_file); printf("Результаты вычислений сохранены в файл results.txt\n"); return 0; }