请用C语言自定义函数的形式编程实现,求s=m!+n!+k!,m、n、k从键盘输入(值均小于7)。
#include <stdio.h>
int factorial(int x)
{
int result = 1;
for (int i = 1;i <= x;i++) {
result *= i;
}
return result;
}
int main() {
int m, n, k, s;
printf("请输入m、n、k的值(均小于7):\n");
scanf("%d%d%d", &m, &n, &k);
s = factorial(m) + factorial(n) + factorial(k);
printf("结果为:%d\n", s);
return 0;
}
以上代码用C语言无法运行,请帮忙用C语言编译正确的代码
编译器不支持 for (int i = 1; i <= x; i++) 定义循环自变量 i 的原因,把 i 定义在函数代码开始的地方即可,修改如下,供参考:
#include <stdio.h>
int factorial(int x)
{
int result = 1, i; // 将 i 的定义移动到代码开始的地方
for (i = 1; i <= x; i++) { // for (int i = 1; i <= x; i++)
result *= i;
}
return result;
}
int main() {
int m, n, k, s;
printf("请输入m、n、k的值(均小于7):\n");
scanf("%d%d%d", &m, &n, &k);
s = factorial(m) + factorial(n) + factorial(k);
printf("结果为:%d\n", s);
return 0;
}
程序本身应该没什么问题,可能是你的编译器有问题,稍微对立面的中文字符做了修改,代码如下:
#include <stdio.h>
int factorial(int x)
{
int result = 1;
for (int i = 1;i <= x;i++) {
result *= i;
}
return result;
}
int main()
{
int m, n, k, s;
printf("请输入m、n、k的值(均小于7):\n");
scanf("%d%d%d", &m, &n, &k);
s = factorial(m) + factorial(n) + factorial(k);
printf("结果为:%d\n", s);
return 0;
}
你是来秀代码的吗?