|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- long long fac(int n);
- int n,y;
- printf("input an integer number:");
- scanf("%d", &n);
- y=fac(n);
- printf("%d!=%d\n", n,y);
- printf("%d,%d",sizeof(y),sizeof(int(n)));
- return 0;
- }
- long long fac(int n)
- {
- int f;
- if (n < 0)
- printf("n<0,data error!");
- else if (n == 0||n == 1)
- f = 1;
- else
- f = fac(n - 1) * n;
- return (f);
- }
复制代码
哪里出问题了??
本帖最后由 肖-肖 于 2021-4-25 11:12 编辑
解释再注释中,主要还是 变量数据类型定义的时候有点问题
- #include<stdio.h>
- int main()
- {
- double fac(int n);//double就够用了
- int n;
- double y;//这里也要设置为double
- printf("input an integer number:");
- scanf("%d", &n);
- y=fac(n);
- printf("%d的阶乘是-->%lf\n", n,y);
- printf("%d,%d",sizeof(y),sizeof(n));
- return 0;
- }
- double fac(int n)
- {
- double f;//这里设置成double型的
- if (n < 0)
- printf("n<0,data error!");
- else if (n == 0||n == 1)
- f = 1;
- else
- f = fac(n - 1) * n;
- return f;
- }
复制代码
效果如下
|
|