Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
5 / 5 / 0
Регистрация: 23.11.2011
Сообщений: 83
1

Выводит неверный результат ln2=1-1/2+1/3-1/4

22.04.2014, 00:42. Показов 1048. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, необходимо написать последовательный и параллельный код для подсчета ln2=1-1/2+1/3-1/4...
Вот что получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
double ln=0.0;
int i=0, k=0;
while (i<20)
{
    i++;
    if (i%2==1)
    {
        k=i*(-1);
    }
    k=i;
    //cout << k << endl;
    //cout << i << endl;
    ln += 1.0/(double)k;
    cout << ln << endl;
}
return 0;
}
Но выводит такой результат:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
1.5
1.83333
2.08333
2.28333
2.45
2.59286
2.71786
2.82897
2.92897
3.01988
3.10321
3.18013
3.25156
3.31823
3.38073
3.43955
3.49511
3.54774
3.59774
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2014, 00:42
Ответы с готовыми решениями:

Почему выводит неверный результат?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;locale.h&gt; #include...

Калькулятор выводит неверный результат
Изучаю С++ по Страуструпу. Дошел до следующей задачи(калькулятор) и &quot;буксую&quot;, не пойму в чем...

При значении больше 10 выводит неверный результат
При вводе чисел до 10, например 4 выводится результат 4 = 4.02725. Начина с 10 результат такой...

Почему выводит неверный результат при вычислении произведения?
Еще 1 вопрос из разряда нубских: #include&lt;iostream&gt; #include&lt;cmath&gt; using namespace std; int...

2
11 / 11 / 7
Регистрация: 29.03.2014
Сообщений: 61
22.04.2014, 01:50 2
Вот так должен выглядеть Ваш код. Главной ошибкой было то, что после if нужно было писать else, а то даже если оно заходило в if то после if оно всеравно присваивало k = i, то есть k всегда было і и никогда і*(-1). Плюс условия я поменял местами, а то так ln тоже не правильно считало)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
using namespace std;
 
int main()
{
double ln=0.0;
int i=0, k=0;
while (i<20)
{
    i++;
    if (i%2==1)
    {
        k=i;
    }
    else k=i*(-1);
    //cout << k << endl;
    //cout << i << endl;
    ln += 1.0/(double)k;
    cout << ln << endl;
     
}
system("pause");
return 0;
}
1
5 / 5 / 0
Регистрация: 23.11.2011
Сообщений: 83
22.04.2014, 01:53  [ТС] 3
Спасибо большое, проморгал я else=)
0
22.04.2014, 01:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2014, 01:53
Помогаю со студенческими работами здесь

Код выводит неверный результат
Добрый день. Есть такой код: package Sovm; public class Drob { float diR; } package...

Запрос выводит неверный результат
Подскажите пожалуйста, вот мой код для запроса: ADOQuery1-&gt;Close(); ADOQuery1-&gt;SQL-&gt;Clear();...

Программа выводит неверный результат
Посчиать это выражение, n и m вводим с клавиатуры! \sum_{m}^{k=1}=n!/k!*(n-k)! Мой код,почему...

Исправьте программу, никаких ошибок не выдаёт, результат выводит неверный
function NOD(C, N:integer):integer; // 1ая Функция нахождения наибольшего общего делителя begin...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru