3 函数加主函数 C 程序计算和显示阶乘
3 Function plus Main Function C Program calculating and displaying a Factorial
第一个函数需要获取数字并将其传递回main,然后需要将此值传递到第二个函数中,该函数计算阶乘并将该值传递回main,结果将打印在第三个也是最后一个函数中。
程序计算输入的数字的阶乘。我需要保持 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 = %dn", factorial);
return;
}
int main()
{
int x, factorial;
GetData(x);
Factorial(x);
PrintResults(factorial);
return(0);
}
首先,您应该将调用GetData
更改为:
GetData(&x);
因为你想要传递指针。然后,其声明应更改为:
void GetData(int *x)
{
printf("Please enter a number:n");
scanf("%d%*c", x);
}
然后,您应该返回变量 factorial
而不是 x
。更改行 :
return(x);
自:
return(factorial);
并因此调用Factorial
函数,如下所示:
factorial = Factorial(x);
就像现在一样,变量factorial
是未初始化的,正如你所说,通过将其传递给Factorial
你会得到垃圾。
#include <stdio.h>
void GetData(int &x)
{
printf("Please enter a number:n");
scanf("%d%*c", &x);
}
int Factorial(int x)
{
int factorial = 1;
for(int i = 1; i <= x; i++)
{
factorial = factorial * i;
}
return(factorial);
}
void PrintResults(int factorial)
{
printf("The factorial = %dn", factorial);
}
int main()
{
int x; // Declaring x;
getData(x); // Initializing x
int factorial = Factorial(x); // Using x to compute factorial and store result in variable
printResult(factorail); // Print that variable
}
试试这个,它应该可以工作,但我目前无法编译它。我没有使用指针,因为您似乎不需要它们,但更喜欢使用 C++ ?
我删除了你的return;
,因为你的函数返回void
,即使写它也是无用和混乱的。
相关文章:
- 使用QTreeView,如何通过调用函数只突出显示特定的行/列
- C++ 构造函数未显示输出
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- 分段故障 11,从类函数显示动态 C 字符串
- 函数显示( ) 不给出输出
- 如何使用消息框函数显示 BSTR 值
- 用于显示矩阵元素的C 函数显示垃圾值
- 函数显示输出和输入时出现问题
- 简单树插入节点函数显示为空
- 挂钩 winapi 函数显示我 dllimport 错误
- C++中的友元函数显示"variable or feild declared void error"
- 使用 main() 以外的其他函数显示类的对象,但在 main() 中调用;
- 我如何使用函数来计算并使用void函数显示
- 输入两个整数,并使用预定义函数显示最大数字
- 在界面设计中使用函数显示日期
- 我的函数显示垃圾,其他时候它显示干净的结果
- 使用函数显示直方图
- 为什么这个哈希表函数显示编译错误
- c++中友元函数显示错误
- 如何使用时间类和函数显示时间