не могу решить задачу на C

Извините за поздний приход, но нужна помощь. пытаюсь решить задачу и не получается. Кто хорошо знает язык C помогите пожалуйста. Как правильно вынести return, я подзабыл просто.

#include <stdio.h>
#include <math.h>

int main(void)  {
    float x, r, a;
    printf("Enter x = ");
    scanf("%f", &x);
    for (int i=1; i<=x; i+=5)
    {
        a=(2-x*x)/(sqrt(4*x+5))-1;
        r=log10(a);
        printf("Результат вычислений = %4.2f \n", r);}
    return 0;
}

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

Автор решения: Igor

Код надо вставлять текстом.

Вы берете логарифм отрицательного числа. Он не существует. Результат - nan - "Not a Number".

→ Ссылка
Автор решения: Georgy Firsov

Никуда никакой return выносить не надо :) Достаточно код отформатировать:

// Часть программы из вопроса
for (int i=1; i<=x; i+=5)
{
    a=(2-x*x)/(sqrt(4*x+5))-1;
    r=log10(a);
    printf("Результат вычислений = %4.2f \n", r);
}

Программа всё правильно считает (не совсем соответствует условию, которое ранее было в вопросе, но это не беда).

Сейчас же достаточно подобрать правильные тестовые числа (1 не подходит). Вот так сама функция выглядит (область определения достаточно явственно видна):

Не определена для 1

→ Ссылка