Не работает проверка в блоке if. Деление на ноль

Формула

Ограничение на x

Консоль При x = 0 t уходит в длинное отрицательное значение, что не может происходить, поскольку есть проверка x != 0.

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <Windows.h>
#include <math.h>


int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    float x, t, a, xn, xk, DeltaX;
    float P = 1, k = 0, S = 0;

    printf("Введіть значення a: ");
    scanf("%f", &a);
    printf("Введіть значення xn: ");
    scanf("%f", &xn);
    printf("Введіть значення xk: ");
    scanf("%f", &xk);
    printf("Введіть значення DeltaX: ");
    scanf("%f", &DeltaX);
    printf("\n");

    for (x = xn; x < xk; x += DeltaX)
    {
        if ( a * x + 1 > 0 && x != 0)
        {
            t = log(a*x+1) / pow(x,2);
            S += t;

            if (t < 1)
                k++;

            if (t > 0)
                P *= t;

            printf("x = %.3f\tt = %.3f\n", x,t);
        }
        else
            printf("x = %.3f\tt = no\n", x);
    }
    printf("k = %.3f\tP = %.3f\tS = %.3f\n", k,P,S);


}

Ответы (0 шт):