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

Цикл с предусловием и постусловием - C++

Восстановить пароль Регистрация
 
KathrineY
 Аватар для KathrineY
1 / 1 / 0
Регистрация: 20.11.2012
Сообщений: 189
24.02.2013, 14:01     Цикл с предусловием и постусловием #1
Дано вещественное число a. Из чисел 1, 1+1/2, 1+ 1/2 + 1/3, … вывести те, которые меньше a.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
24.02.2013, 14:07     Цикл с предусловием и постусловием #2
C++
1
2
3
4
5
6
7
8
9
double a,s=1;
cin>> a;
int i=0;
while(s<a)
{
s+=1/i;
cout << s;
i++;
} (
zss
Модератор
Эксперт С++
 Аватар для zss
5952 / 5557 / 1787
Регистрация: 18.12.2011
Сообщений: 14,202
Завершенные тесты: 1
24.02.2013, 14:12     Цикл с предусловием и постусловием #3
C++
1
2
3
4
5
6
7
8
9
double a;
cin>>a;
double sum=1.;
int i=2;
while(sum<a)
{
   cout<<sum<<endl;
   sum+=1./i++;
}
Добавлено через 2 минуты
Цитата Сообщение от olya7 Посмотреть сообщение
s+=1/i;
1. начальное i у Вас 0. Поэтому 1/0 - ошибка деления.
2. 1/i при i=1 равно 1, а при i>1 равно НУЛЮ.
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
24.02.2013, 14:17     Цикл с предусловием и постусловием #4
Цитата Сообщение от zss Посмотреть сообщение
1. начальное i у Вас 0. Поэтому 1/0 - ошибка деления.
спасибо)

Цитата Сообщение от olya7 Посмотреть сообщение
double a,s=1;
cin>> a;
int i=1;
while(s<a)
{
s+=1/i;
cout << s;
i++;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5952 / 5557 / 1787
Регистрация: 18.12.2011
Сообщений: 14,202
Завершенные тесты: 1
24.02.2013, 14:30     Цикл с предусловием и постусловием #5
Цитата Сообщение от olya7 Посмотреть сообщение
s+=1/i;
Еще раз говорю 1/i равно НУЛЮ. Надо приводить к double,
например,
s+=1.0/i;
или
s+=1/(double)i;
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
24.02.2013, 14:53     Цикл с предусловием и постусловием #6
Выводит последовательностями:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
int main()
{
     double a=2.5, x;
     for (int i=1; x<a; ++i)
     {
          x = 1.;
          std::cout<<'1';
          for (int j=2; j<=i; ++j)
          {
                x+=1./j;
                std::cout<<"+1/"<<j;
          }
          std::cout<<'\n';              
     }
     return 0;
}
Yandex
Объявления
24.02.2013, 14:53     Цикл с предусловием и постусловием
Ответ Создать тему
Опции темы

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