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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
#1

вызов функцииж факториал - C++

24.04.2013, 05:24. Просмотров 1320. Ответов 43
Метки нет (Все метки)

не могу найти ошибку в программе. задание: Составить программу решения задачи с использованием функций нахождения факториала и числа сочетаний из n по m. заранее спасибо за помощь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream.h>
#include<math.h>
 
double H (double (*f)(double), double m, n)
{
return f(n)/(f(m)*f(n-m));
}
 
double f(double n)
{
return {
p=0.0;
for(i=0;i<=n;i++) p=p*i; }
}
int main()
{ double m,n C;
cout<<"VVedite m, n\n";
cin>>m>>n;
cout<<H(f,n,m,n-m);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2013, 05:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вызов функцииж факториал (C++):

Описать рекурсивные функции вещественного типа, вычисляющие факториал и двойной факториал заданного числа - C++
Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала N! и двойного факториала N!!...

Факториал - C++
Простите за избитую тему, но не могу ни как организовать факториал в winForms . При клике на Button программа должна выводить факториал в...

Факториал - C++
Дано целое число N (&gt; 0). Найти двойной факториал N: N!! = N•(N–2)•(N–4)•… (последний сомножитель равен 2, если N — четное, и 1, если...

Факториал - C++
Дано натуральное число n; найти n!. Использовать программу, включающую рекурсивную процедуру вычисления n!

Факториал - C++
Пожалуйсто, помогите написать прогу на Си, которая вичисляла бы 100! (факториал) выводя всё на экран!

факториал - C++
сумма факториалов

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
palva
2609 / 1831 / 262
Регистрация: 08.06.2007
Сообщений: 6,989
Записей в блоге: 4
24.04.2013, 06:15 #2
По-моему, так:
C++
1
2
3
4
5
6
double f(double n)
{
    double p=1.0;
    for(int i=2;i<=n;i++) p=p*i;
    return p;
}
vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 06:46  [ТС] #3
у меня выдает ошибку в строке:
C++
1
double H (double (*f)(double), double m, n)
только я не могу понять что в ней не так.
а про то, что при умножении приравнивается к 1, а не к 0, я действидельно забыла. спасибо. только основную проблему это не решило.

Добавлено через 27 минут
я в панике. она вообще не работает. подскажите пожалуйсто что в ней не так
palva
2609 / 1831 / 262
Регистрация: 08.06.2007
Сообщений: 6,989
Записей в блоге: 4
24.04.2013, 06:58 #4
А компилятор разве не говорит в чем ошибка? Это не паскаль.
C++
1
double H (double (*f)(double), double m, double n)
vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 07:28  [ТС] #5
а теперь оно пишет что здесь что-то не так
C++
1
2
3
4
5
6
double f(double n)
{
return {
p=0.0;
for(i=0;i<=n;i++) p=p*i; }
}
может нучно как-то по другому функцию вызова цикла писать??
palva
2609 / 1831 / 262
Регистрация: 08.06.2007
Сообщений: 6,989
Записей в блоге: 4
24.04.2013, 07:31 #6
После return может следовать выражение и в конце точка с запятой. У вас - не выражение.
Я написал, как должно быть.
vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 07:38  [ТС] #7
только как тогда сделать вызов функции с циклом вычисления факториала?

Добавлено через 4 минуты
все, исправила=) спасибо
zss
Модератор
Эксперт С++
6358 / 5922 / 1919
Регистрация: 18.12.2011
Сообщений: 15,219
Завершенные тесты: 1
24.04.2013, 08:50 #8
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
#include<iostream>
#include<math.h>
using namespace std;
int f(int n)
{
      int p=1;
      for(int i=2;i<=n;i++) 
           p=p*i; 
     return p;
}
 
int H (int m,int n)
{
      return f(n)/f(m)/f(n-m);
}
int main()
{ 
    int m,n;
    cout<<"VVedite m, n:";
    cin>>m>>n;
    cout<<H(m,n);
    system("pause");
    return 1;
}
vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 09:17  [ТС] #9
а можно функцию Н вставить в цикл с вычислением еще и суммы, где m будет заменено на i и будет меняться в цикле i++???
zss
Модератор
Эксперт С++
6358 / 5922 / 1919
Регистрация: 18.12.2011
Сообщений: 15,219
Завершенные тесты: 1
24.04.2013, 09:24 #10
C++
1
2
3
4
5
...
int S=0;
for(int i=1;i<=m;i++)
  S+=H(i,n);
....
vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 09:37  [ТС] #11
выдает Н со значением n

Добавлено через 6 минут
по формуле примерно вот так.только в этом случае оно Н не вычисляет, причем не в 1-м, не во 2-м случае
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
26
#include<iostream.h>
#include<math.h>
 
double H (double (*f)(double), double n, double m)
{
return f(n)/(f(m)*f(n-m));
}
double f(double n)
{
     double p=1.0;
     for(int i=1;i<=n;i++) p=p*i;
     return p;
}
 
int main()
{ double m,n ;
cout<<"VVedite m, n\n";
cin>>m>>n;
cout<<H(f,n,m);
double x,y;
cout<<"\nVVedite x\n";
cin>>x;
for(int i=1;i<=n;i++)
y=H(f,n,i)*pow(x,i);
cout<<"y="<<y;
}
ErinI
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 11
24.04.2013, 10:01 #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cmath>
 
using namespace std;
 
double fact(int x,int n)
{
    if (n==0) return 1;
    else return x*fact(x,n-1);
}
 
void main()
{
    int n,x;
    cin>>x>>n;
    cout<<fact(x,n);
}
vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 10:05  [ТС] #13
в таком варианте она вообще не работает
ErinI
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 11
24.04.2013, 10:10 #14
Вы на чем компилируете?
okman
15 / 21 / 1
Регистрация: 05.04.2013
Сообщений: 204
24.04.2013, 10:56 #15
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
не могу найти ошибку в программе. задание: Составить программу решения задачи с использованием функций нахождения факториала и числа сочетаний из n по m. заранее спасибо за помощь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream.h>
#include<math.h>
 
double H (double (*f)(double), double m, n)
{
return f(n)/(f(m)*f(n-m));
}
 
double f(double n)
{
return {
p=0.0;
for(i=0;i<=n;i++) p=p*i; }
}
int main()
{ double m,n C;
cout<<"VVedite m, n\n";
cin>>m>>n;
cout<<H(f,n,m,n-m);
}
Я вообще новичок, но может лучше глобальные переменные объявить? И почему у тебя здесь double H (double (*f)(double), double m, n) в скобках написано? Так вроде нельзя делать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 10:56
Привет! Вот еще темы с ответами:

Факториал - C++
помогите написать прогу факториала в С++ с помощью циклов. Мне нужна простая прога а не на пол экрана. облазил весь инет, нигде нет...

Факториал - C++
Нужно посчитать факториал (3*n+2)! в цикле приведенной ниже программы. #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;math.h&gt; ...

факториал и с++ - C++
Помогите написать программу на языке с++ для нахождения факториала. Заранее спасибо!

Факториал - C++
Здравствуйте! Задали новые задачки, не могу реализовать функцию для факториала. Например есть вот такое выражение S= ( i! )/(( N+i )!) ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.04.2013, 10:56
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru