#include #include #include #include #define LINE_SIZE 100 // Funkcia na bezpečné načítanie čísla int read_double(double *value, int coef_index) { char line[LINE_SIZE]; if (fgets(line, LINE_SIZE, stdin) == NULL) { return 0; // Chyba pri čítaní } // Odstránenie nového riadka line[strcspn(line, "\r\n")] = 0; // Skontrolujeme, či je riadok prázdny if (strlen(line) == 0) { return 0; } char *endptr; *value = strtod(line, &endptr); // Ak nebolo načítané číslo alebo sú tam neplatné znaky if (endptr == line || *endptr != '\0') { printf("Nepodarilo sa nacitat polynom na %d mieste.\n", coef_index); // Zobrazenie správneho indexu return -1; // Signalizujeme chybu } return 1; } int main() { double x; if (!read_double(&x, 1)) { return 1; } double coef; double result = 0; int coef_count = 1; // Koeficienty začíname indexovať od 1 (pre x^1) while (1) { int status = read_double(&coef, coef_count + 1); // Tu používame coef_count + 1 pre správny index if (status == -1) { return 0; // Očakávané ukončenie pri neplatnom vstupe } if (status == 0) { if (coef_count == 1) { // Ak nebol zadaný žiadny koeficient return 1; } break; } result = result * x + coef; coef_count++; } printf("Vysledok je: %.2f\n", result); return 0; }