Цикл while

   #include <iostream>
#include <math.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
cout<<""<<endl;
double a,n;

double s,x,e,step;
x=0.1;
s=0;
n=1;
a=pow((-1),n+1)*(pow(x,2*n))/((2*n)*(2*n-1));
while (a>0.00001)
{
cout<<"шаг"<<n<<endl;
cout<<"a= "<<a<<" "<<endl;
s=s+a;
cout<<"s="<<s<<" "<<endl;
n=n+1;
a=(pow(x,2*n))/((2*n)*(2*n-1));
} }

программа не выполняет условие цикла

Почему не выполняет? Все нормально выполняет.

На первом проходе тела цикла переменная a получает значение 8.3333333333333354e-006, что меньше, чем 0.00001. Следовательно второго выполнения тела цикла уже не будет.

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

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

Ответить

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

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

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

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

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

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