Почему не работает код на Си?

#include <stdio.h>
int main()
{
    float s = 0;
    float a;
    int i = 1;
    while(s>=0,0001)
    {
      a = 1/(pow(i,4)+4*pow(i,2)+1);
      s -= a;
      i++;
    }
    printf("%f",&a);
    return 0;
}
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Я пока вижу
printf("%f", a);
Не нужно брать адрес у a.

while(s>=0.0001)
1) Дробные числа во всех ЯП записываются через точку. Кое ради какой вещи (параллельные циклы) в Си есть операция «запятая», так что код может даже компилироваться.
2) Цикл не выполнится ни разу, т.к. 0 < 0,0001.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
while(s>=0,0001)

-- тут записан бесконечный цикл. Потому что условие while всегда имеет значение 1. Потому что это не сравнение s с 0.0001, а два выражения связанные оператором "запятая" -- s >= 0 и 0001.
Ответ написан
Комментировать
@fastkulob
в последнем printf уберите знак & перед буквой переменной a.
У вас printf("%f",&a);
Правильнл printf("%f",a);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы