pvjc24/cv3/program.c
2024-03-08 08:17:54 +00:00

51 lines
1.2 KiB
C

#include <stdio.h>
#include <stdlib.h>
double hornerScheme(double x, double* coef, int n) {
double result = coef[0];
for (int i = 1; i < n; i++) {
result = result * x + coef[i];
}
return result;
}
int main() {
double x;
printf("Enter the value of x: ");
if (scanf("%lf", &x) != 1) {
printf("Invalid input for x.\n");
return 1;
}
int capacity = 10, count = 0;
double* coefficients = (double*)malloc(capacity * sizeof(double));
if (coefficients == NULL) {
printf("Failed to allocate memory.\n");
return 1;
}
printf("Enter coefficients (end with non-numeric input):\n");
while (scanf("%lf", &coefficients[count]) == 1) {
count++;
if (count >= capacity) {
capacity *= 2;
double* temp = (double*)realloc(coefficients, capacity * sizeof(double));
if (temp == NULL) {
free(coefficients);
printf("Failed to reallocate memory.\n");
return 1;
}
coefficients = temp;
}
}
while (getchar() != '\n');
double result = hornerScheme(x, coefficients, count);
printf("The result is: %.2f\n", result);
free(coefficients);
return 0;
}