Помогите, не выполняется цикл.

Почему то сразу после условия выполнения цикла, сам цикл пропускается, даже если задать правильное промежуточное значение один хрен цикл пропускается.
Вот код:

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

int main ()
{
    setlocale(LC_ALL, "rus");
    double n;
    float a;
    int i=1;
    puts ("Условие выполнения цикла: 0.001<a<=0.2\n");
    printf("Введите a:");
    scanf("%f",&a);
    if ( a>0.001 && a<=0.2)
    {
        do
        {
           i++;
           n=1./(i*(i+1)*(i+2));
           printf("%le\n", n);
        }
        while (n>=a);
    }
    else
        printf("Вы ввели число несовместимое с условием выполнения цикла");

    return 0;
}

Сделай либо

setlocale(LC_CTYPE, "rus");

либо вводи число с десятичным разделителем «запятая» (не точка!), как это прописано в национальных установках винды для России,

либо поменяй в национальных настройках винды десятичный разделитель на «точку».

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.