Aktualizovat du2/program.c
This commit is contained in:
parent
6ea1690652
commit
50ae5a3bd3
@ -2,14 +2,12 @@
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
|
||||
// Проверка, является ли строка числом (целым или с плавающей точкой)
|
||||
int je_cislo(const char *str) {
|
||||
char *endptr;
|
||||
strtod(str, &endptr);
|
||||
return *endptr == '\0';
|
||||
}
|
||||
|
||||
// Чтение числа с проверкой, если ошибка — вывод сообщения и завершение программы
|
||||
double citaj_cislo(int poradie) {
|
||||
char buffer[100];
|
||||
if (fgets(buffer, sizeof(buffer), stdin) == NULL) {
|
||||
@ -21,13 +19,11 @@ double citaj_cislo(int poradie) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Убираем перевод строки
|
||||
char *newline = strchr(buffer, '\n');
|
||||
if (newline) *newline = '\0';
|
||||
|
||||
// Пустая строка — конец ввода коэффициентов
|
||||
if (buffer[0] == '\0') {
|
||||
return 0.0 / 0.0; // Возвращаем NaN как сигнал конца ввода
|
||||
return 0.0 / 0.0;
|
||||
}
|
||||
|
||||
if (!je_cislo(buffer)) {
|
||||
@ -42,7 +38,6 @@ double citaj_cislo(int poradie) {
|
||||
return atof(buffer);
|
||||
}
|
||||
|
||||
// Горнерова схема
|
||||
double hornerova_schema(double *koef, int n, double x) {
|
||||
double vysledok = 0.0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
@ -53,13 +48,11 @@ double hornerova_schema(double *koef, int n, double x) {
|
||||
|
||||
int main() {
|
||||
double x;
|
||||
double koef[100]; // максимум 100 коэффициентов, можно увеличить при необходимости
|
||||
double koef[100];
|
||||
int n = 0;
|
||||
|
||||
// Чтение x
|
||||
x = citaj_cislo(0);
|
||||
|
||||
// Чтение коэффициентов
|
||||
while (1) {
|
||||
double koeficient = citaj_cislo(n + 1);
|
||||
if (koeficient != koeficient) { // Если NaN, это конец ввода
|
||||
@ -78,7 +71,6 @@ int main() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Вычисление и вывод результата
|
||||
double vysledok = hornerova_schema(koef, n, x);
|
||||
printf("Vysledok je: %.2f\n", vysledok);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user