#include <stdio.h>
#include<math.h>
int Facl(int n)
{
int i = 0;
int ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
return ret;
}
int main()
{
int n = 0;
int ret = 0;
scanf("%d\n", &n);
ret = Facl(n);
printf("ret=%d\n", ret);
return 0;
}
(1)scanf中%d后面不要加 \n
(2)阶乘函数的返回值最好用long long或者double类型,否则,当n大于10以后可能会出错
代码修改如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<math.h>
long long Facl(int n) //返回值改成long long
{
int i = 0;
long long ret = 1; //改成 long long
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
return ret;
}
int main()
{
int n = 0;
long long ret = 0;//这里改成long long
scanf("%d", &n); //这里不要带回车
ret = Facl(n);
printf("ret=%lld\n", ret); //输出用%lld
return 0;
}
scanf的时候最好不要加换行符,否则容易输入出错
#include <stdio.h>
#include<math.h>
int Facl(int n)
{
int i = 0;
int ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
return ret;
}
int main()
{
int n = 0;
int ret = 0;
scanf("%d", &n);
ret = Facl(n);
printf("ret=%d\n", ret);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!