用C语言实现1到100的连乘,帮忙看看这道程序哪里出错,thx
main(){longn,s;n=1;s=1;while(n<=100){s*=n;n++;}printf("1*2*...*%d=%d\n",n-1,s);}...
main() { long n,s; n=1; s=1; while(n<=100) { s*=n; n++; } printf("1*2*...*%d=%d\n",n-1,s); }
展开
5个回答
展开全部
100!的结果是
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000。
你觉得long类型的变量能存下吗?只能用其他如字符串的手段
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000。
你觉得long类型的变量能存下吗?只能用其他如字符串的手段
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
long n,s;
n=1;
s=1;
while(n<=100)
{
s*=n;
n++;
}
printf("1*2*...*%d=%d\n",n-1,s);
//这个地方的第二个%d不可以,应该用%l,估计long都不够用的
}
{
long n,s;
n=1;
s=1;
while(n<=100)
{
s*=n;
n++;
}
printf("1*2*...*%d=%d\n",n-1,s);
//这个地方的第二个%d不可以,应该用%l,估计long都不够用的
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1到100的连乘已经远远超出了long的范围。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("1* 2* ...* %d = %ld\n", n-1,s);
再有把条件换成while (n <= 10) 100的阶乘是个非常大的数,估计用Long是不够的。
再有把条件换成while (n <= 10) 100的阶乘是个非常大的数,估计用Long是不够的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
long 应该用 %ld
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询