0

最初の関数は数値を取得してメインに戻す必要があります。次に、この値を階乗を計算する 2 番目の関数に渡し、その値をメインに戻し、結果を 3 番目の最後の関数に出力する必要があります。

プログラムは、入力された数値の階乗を計算します。forループを維持する必要があります。何が問題なのかわかりません。ガベージ値が返されるので、どこかで値を失っているか、値を保存していないと思います。

また、一般的なヘルプをいただければ幸いです。

#include <stdio.h>

void GetData(int &x)
{
    printf("Please enter a number:\n");
    scanf("%d%*c", &x);

    return;
}

int Factorial(int x)
{
    int factorial = 1;
    int i;

    for(i = 1; i <= x; i++)
    {
        factorial = factorial * i;
    }

    return(x);
}

void PrintResults(int factorial)
{
    printf("The factorial = %d\n", factorial);

    return;
}

int main()
{
    int x, factorial;

    GetData(x);

    Factorial(x);


    PrintResults(factorial);

    return(0);
}
4

2 に答える 2