2013-04-17 2 views
0

Привет, мне нужно написать эту программу, которая вычисляет факториал заданного числа. Первая функция должна считываться числом, а затем передавать ее основной функции, которая передает это значение второй функции, которая вычисляет факториал этого числа, затем передает этот факториал в main.a третью функцию затем следует вызывать из основное, который показывает факторный Вот то, что я написал, и я не могу заставить его работать:c программа для вычисления факториала не работает

#include <stdio.h> 

    int getValue() 
    { 

     int n; 

     printf("Enter number: "); 
     scanf("%d%*c", &n); 
     return(n); 
    } 

    int factorial(int n) 
    { 

     int i, f; 

     f = 1; 
     for(i=1; i<=n; i++) 
     f = f * i; 

     return(f); 
    } 

    void printFactorial(int f) 
    { 

     printf("The factorial is: %d", f); 

     return; 
    } 

    int main() 
    { 

     int f = getValue(); 
     factorial(f); 
     printFactorial(); 

     return(0); 
    } 

ответ

1

Я думаю, что у вас отсутствует параметр для printFactorial().

Попробуйте это:

printFactorial(factorial(f)); 
+0

Да, что это было большое спасибо! – 2013-04-17 06:15:29

2

Вы не проходя вычисленный факториал значения printFactorial(). Передайте значение функции печати:

int main() 
{ 

    int f = getValue(); 
    int fact = factorial(f); 
    printFactorial(fact); 
    return(0); 
} 
0

Вы игнорируете возвращаемое значение factorial() и не передавая аргумент printFactorial(). Это наиболее очевидные проблемы.

Другая, самая тонкая проблема заключается в том, что factorial() будет работать только для небольших значений n. Факторная функция растет настолько быстро, что вы быстро столкнетесь с целым переполнением.

1

Вы не передавая значение printFactorial(). Передайте значение функции печати: Вы можете хранить факторный (е) приводит к некоторой переменной, а затем PaaS или вы можете передать факториал (е) печати функции

-1
int main() 
{ 

    int f = getValue(); 
    factorial(f); 
    printFactorial(f); 
    getch(); 
    return(0); 
} 
+0

Не могли бы вы добавить какой-то контекст, чтобы объяснить код abit? –

Смежные вопросы