一个c语言问题,求解答

#include<stdio.h>voidmain(){intn;scanf("%d",&n);doublef(intn);printf("n=%d,f=%f\n",n,... #include<stdio.h>
void main()
{
int n;
scanf("%d",&n);
double f(int n);
printf("n=%d,f=%f\n",n,f(n));
}
double f(int n)
{double u=1.0;
while(n>1&&n<170)u*=(double)n--;
return(u);
}
问题是求n!,想问一下我是哪里做错了
展开
 我来答
同蕾忻戊
2019-11-07 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:24%
帮助的人:1029万
展开全部
如果把它作为字符串处理,还是比较容易的,以下是核心代码:
int
i;
char
str[100];
scanf("%s",
&str);/*
接受按键输入的字符串
*/
for(i=strlen(str);
i>=0;
i--)

printf("%c",
str[i]);/*
for循环,从尾至头 打印字符串中的每一个字符
*/
printf("\n");
/*
最后换行
*/
如果是用int型保存输入的数,输入的数值的取值范围有限。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duanggi
2019-05-24 · TA获得超过196个赞
知道小有建树答主
回答量:240
采纳率:87%
帮助的人:144万
展开全部
代码上其实是没有问题的。当n比较小的时候,输出的答案确实是n!。但是当n比较大的时候,double就溢出,不能再表示更大的数了。
追问
不对啊,根本不能运行
追答

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式