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

работа с циклом for - C++

Восстановить пароль Регистрация
 
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:04     работа с циклом for #1
Ребят, я чот запутался с реализацией этой задачи
http://www.cyberforum.ru/attachment....1&d=1294243087

как я понял там должен быть цикл типа
C++
1
2
for(int i=0;i<=n;i++)
p*=2*n/(2*n+1);
только вот меня возмущает "p*=", результат у меня всегда равен нулю.......
Миниатюры
работа с циклом for  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.01.2011, 19:11     работа с циклом for #2
Bogdan808, Покажите весь Ваш код.
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:13  [ТС]     работа с циклом for #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main(){
clrscr();
float n,s;
printf("Введите натуральное число n: ");
scanf("%f",&n);
for(float i=0;i<=n;i++){
s*=2*n/(2*n+1);
}
printf("= %f",s);
getch();
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.01.2011, 19:17     работа с циклом for #4
Цитата Сообщение от Bogdan808 Посмотреть сообщение
float n,s;
Вот здесь s присвойте начальное значение: 1.0
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:22  [ТС]     работа с циклом for #5
Действительно, не подумал что s сама по себе без инициализации равна нулю!
хех, век живи век учись!
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 19:22     работа с циклом for #6
Все равно 0 получается ))
у меня такой код получился
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
/*Дано натуральное число n. Вычислить произведение 
n членов ряда: P=2/3*4/5*6/7*...*2n/(2n+1)*/
#include <iostream>
using namespace std;
int main(void)
{setlocale (LC_ALL, "Russian");
cout<<"Введите количество членов последовательности P=2/3*4/5*6/7*...*2n/(2n+1): ";
float P=1,n;
cin>>n;
for (int i=0;i<n;i++)
P*=(2*i)/(2*i+1);
cout<<P<<endl;
return 0;}
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:24  [ТС]     работа с циклом for #7
Ну так если у тебя i=0 то понятно что ответ будет нуль!
вот тут
C++
1
2
for (int i=0;i<n;i++)
P*=(2*i)/(2*i+1);
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 19:25     работа с циклом for #8
Все равно 0 ))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
/*Дано натуральное число n. Вычислить произведение 
n членов ряда: P=2/3*4/5*6/7*...*2n/(2n+1)*/
#include <iostream>
using namespace std;
int main(void)
{setlocale (LC_ALL, "Russian");
cout<<"Введите количество членов последовательности P=2/3*4/5*6/7*...*2n/(2n+1): ";
float P=1,n;
cin>>n;
for (int i=1;i<=n;i++)
P*=(2*i)/(2*i+1);
cout<<P<<endl;
return 0;}
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
05.01.2011, 19:28     работа с циклом for #9
C++
1
2
for (int i=2; i<= n*2;i += 2)
    P*= double(i)/double(i + 1);
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:28  [ТС]     работа с циклом for #10
Не допиливаю, зачем ты в формуле используешь i ?
посмотри внимательно на мой for
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.01.2011, 19:28     работа с циклом for #11
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main(){
clrscr();
float n,s=1.;
printf("Введите натуральное число n: ");
scanf("%f",&n);
for(float i=1;i<=n;i++){
s*=2*i/(2*i+1);
}
printf("= %f",s);
getch();
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:30  [ТС]     работа с циклом for #12
Хотя.... чо я горожу, у меня то формула не правильная!
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 19:30     работа с циклом for #13
Цитата Сообщение от Bogdan808 Посмотреть сообщение
Не допиливаю, зачем ты в формуле используешь i ?
посмотри внимательно на мой for
Но ведь у тебя значение n не меняется.
Поправь меня если я не прав.
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:31  [ТС]     работа с циклом for #14
Ты все прально сделал, это я тупанул, i там значение ведь идет по нарастающей.....
хотя.. я уже запутался опять... ппц!
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 19:34     работа с циклом for #15
А расскажите мне почему у i тип float?

Добавлено через 1 минуту
и где используются фунции описанные в <math.h>?
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:36  [ТС]     работа с циклом for #16
Цитата Сообщение от Sokolov Посмотреть сообщение
А расскажите мне почему у i тип float?
Да не почему, большинство переменных имеют тип float , вот я рефлекторно и набрал.

и где используются функции описанные в <math.h>?
Это еще старый С++ с синим экранном и жуткого вида интерфейса, а библиотека эта для математических функций, возведение в степень и тд!
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 19:37     работа с циклом for #17
Цитата Сообщение от Bogdan808 Посмотреть сообщение
Да не почему, большинство переменных имеют тип float , вот я рефлекторно и набрал.
Это правильно, но почему когда i имеет тип int то значение выдается 0? Ведь там значение s дробное т.е. float
Bogdan808
 Аватар для Bogdan808
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 20
05.01.2011, 19:45  [ТС]     работа с циклом for #18
Цитата Сообщение от Sokolov Посмотреть сообщение
Это правильно, но почему когда i имеет тип int то значение выдается 0? Ведь там значение s дробное т.е. float
Я не совсем понял твоего вопроса....
Вообще если пользоваться твоей формулой то получается что с i производятся различные действия, и ответ этих действий чаще всего дробный...
тоесть если мы собираемся оперировать дробными числами (i в том числе), то вообще разумно использовать тип float.
Ну и если мы ставим int то ясень пень будет нуль, int округляется и ничо с ним не сделаешь!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2011, 19:49     работа с циклом for
Еще ссылки по теме:

Функция с циклом C++
C++ задача с циклом while
Работа с циклом do while C++

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

Или воспользуйтесь поиском по форуму:
Sokolov
 Аватар для Sokolov
42 / 42 / 3
Регистрация: 04.01.2011
Сообщений: 125
05.01.2011, 19:49     работа с циклом for #19
Да,да понял ))
Yandex
Объявления
05.01.2011, 19:49     работа с циклом for
Ответ Создать тему
Опции темы

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