最初の関数は数値を取得してメインに戻す必要があります。次に、この値を階乗を計算する 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);
}