Вывести результат
В этом финальном этапе вы усовершенствуете программу оценки полинома, добавив форматированный вывод и обработку ошибок, чтобы улучшить пользовательский опыт.
Откройте предыдущий файл C и обновите его с улучшенным выводом результата:
cd ~/project
nano polynomial_eval.c
Обновите код с форматированным выводом результата и проверкой ввода:
#include <stdio.h>
#define MAX_DEGREE 10
double hornerMethod(int degree, double coefficients[], double x) {
double result = coefficients[degree];
for (int i = degree - 1; i >= 0; i--) {
result = result * x + coefficients[i];
}
return result;
}
void printPolynomial(int degree, double coefficients[]) {
printf("Polynomial: ");
for (int i = degree; i >= 0; i--) {
if (coefficients[i]!= 0) {
if (i == degree) {
printf("%.2fx^%d ", coefficients[i], i);
} else if (i > 1) {
printf("%+.2fx^%d ", coefficients[i], i);
} else if (i == 1) {
printf("%+.2fx ", coefficients[i]);
} else {
printf("%+.2f", coefficients[i]);
}
}
}
printf("\n");
}
int main() {
int degree;
double coefficients[MAX_DEGREE + 1];
double x, result;
// Проверка ввода
do {
printf("Enter the degree of the polynomial (0-10): ");
scanf("%d", °ree);
} while (degree < 0 || degree > MAX_DEGREE);
printf("Enter coefficients from highest degree to constant term:\n");
for (int i = degree; i >= 0; i--) {
printf("Coefficient for x^%d: ", i);
scanf("%lf", &coefficients[i]);
}
printf("Enter the value of x: ");
scanf("%lf", &x);
// Вывести подробности полинома
printPolynomial(degree, coefficients);
// Оценить полином методом Горнера
result = hornerMethod(degree, coefficients, x);
// Форматированный вывод результата
printf("Polynomial Evaluation:\n");
printf("P(x) = f(%.2f) = %.2f\n", x, result);
return 0;
}
Скомпилируйте и запустите обновленную программу:
gcc polynomial_eval.c -o polynomial_eval
./polynomial_eval
Пример вывода:
Enter the degree of the polynomial (0-10): 3
Enter coefficients from highest degree to constant term:
Coefficient for x^3: 2
Coefficient for x^2: -3
Coefficient for x^1: 0
Coefficient for x^0: 5
Enter the value of x: 2
Polynomial: 2.00x^3 -3.00x^2 +5.00
Polynomial Evaluation:
P(x) = f(2.00) = 11.00
Основные улучшения:
- Добавлена функция
printPolynomial()
, чтобы отобразить полином
- Реализована проверка ввода для степени полинома
- Улучшен вывод результата с форматированным выводом
- Показаны и полином, и его оценочное значение