Форум программистов, компьютерный форум CyberForum.ru

Найдите ошибку - C++

Восстановить пароль Регистрация
 
Noka94
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 25
15.10.2013, 21:00     Найдите ошибку #1
Если честно, совсем не понимаю как решать.
Вычислить
Думала как то так, но видимо нет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
#include<math.h>
int main() 
{
int n=1;
double S=0, s=1;
do{
if (n==103) {s=101+1/103);}
else {s=1+1/s;n=n+2;}
}
while(n<=103);
S=1/s;
cout<<S;
}
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2013, 21:00     Найдите ошибку
Посмотрите здесь:

найдите ошибку C++
найдите ошибку C++
C++ найдите ошибку
C++ Найдите ошибку!
C++ Найдите ошибку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
B@R_LOG
 Аватар для B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
16.10.2013, 02:36     Найдите ошибку #2
Если честно, не совсем понял что вам задано сделать, ну да ладно.
C++
1
if (n==103) {s=101+1/103);} замените на if (n==103) {s=101+1/103; break;}
В чём ошибка: после того как n=103 оно никак не увеличивается -> не может выйти из условия while.
Noka94
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 25
16.10.2013, 06:41  [ТС]     Найдите ошибку #3
Мне нужно просто вычислить
rpsv
15 / 46 / 3
Регистрация: 14.10.2013
Сообщений: 161
16.10.2013, 07:57     Найдите ошибку #4
Цитата Сообщение от B@R_LOG Посмотреть сообщение
В чём ошибка: после того как n=103 оно никак не увеличивается -> не может выйти из условия while.
Да как бы в while стоит условие, так что ошибка не в этом!

Noka94, тут надо рекурсией заниматься друзья мои:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include<math.h>
 
using namespace std;
 
double Function(int n)
{
    if ( n == 101 )
    {
        return 101 + 1 / 103;
    }
    else
    {
        return n + 1 / Function(n + 2);
    }
}
 
int main() 
{
    double S = 1 / Function(1);
    cout<<S;
}
Добавлено через 27 минут
B@R_LOG, вы правы на счет того что цикл зацикливается ... не сразу въехал))
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
16.10.2013, 08:57     Найдите ошибку #5
Еще как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
int main()
{
    int count = 103;
    double sum = count - 2 + 1.0/count;
    while (count > 1)
    {
        count -= 2;
        sum = 1.0/(count + sum);
    }
    std::cout << sum << std::endl;
}
Yandex
Объявления
16.10.2013, 08:57     Найдите ошибку
Ответ Создать тему
Опции темы

Текущее время: 02:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru