#include #include #define LINE_SIZE 256 // Funkcia na kontrolu, či je reťazec platné číslo (desatinné alebo celé) int isFloat(const char *str) { if (*str == '\0') return 0; // Ak je reťazec prázdny, nie je to číslo char *endptr; strtod(str, &endptr); // Pokus o konverziu reťazca na desatinné číslo return *endptr == '\0' || *endptr == '\n'; // Skontroluje, či bol celý reťazec číslo } int main() { char line[LINE_SIZE]; // Pole na ukladanie vstupného riadka // Načítanie hodnoty x a kontrola, či je platné číslo if (!fgets(line, LINE_SIZE, stdin) || !isFloat(line)) { printf("Nepodarilo sa nacitat zaklad x\n"); return 0; } double x = atof(line); // Konverzia načítaného reťazca na číslo (double) // Načítanie prvého koeficientu polynómu a jeho kontrola if (!fgets(line, LINE_SIZE, stdin) || !isFloat(line)) { printf("Nepodarilo sa nacitat polynom na 1 mieste.\n"); return 0; } double res = atof(line); // Prvý koeficient sa uloží do výsledku int coefficient = 1; // Počítadlo koeficientov // Cyklus na načítanie ďalších koeficientov polynómu while (fgets(line, LINE_SIZE, stdin) != NULL && line[0] != '\n') { // Číta, kým nie je prázdny riadok coefficient++; if (!isFloat(line)) { // Kontrola, či je vstup číslo printf("Nepodarilo sa nacitat polynom na %d mieste.\n", coefficient); return 0; } res = res * x + atof(line); // Použitie Hornerovej schémy na výpočet hodnoty polynómu } printf("Vysledok je: %.2f\n", res); return 0; }