c语言程序 1*2*3····*100
#include<stdio.h>main(){doublen,s;n=1;s=0;while(n<=100){s*=n;n++;}printf("1*2*3*...*%...
#include<stdio.h>
main()
{double n,s;
n=1;
s=0;
while(n<=100)
{s*=n;
n++;
}
printf("1*2*3*...*%lf=%lf\n",n,s);
}
有什么错
--------------------Configuration: 33t1 - Win32 Debug--------------------
Linking...
33t1(2).obj : error LNK2005: _main already defined in 33t1.obj
Debug/33t1.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.
33t1.exe - 1 error(s), 0 warning(s) 展开
main()
{double n,s;
n=1;
s=0;
while(n<=100)
{s*=n;
n++;
}
printf("1*2*3*...*%lf=%lf\n",n,s);
}
有什么错
--------------------Configuration: 33t1 - Win32 Debug--------------------
Linking...
33t1(2).obj : error LNK2005: _main already defined in 33t1.obj
Debug/33t1.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.
33t1.exe - 1 error(s), 0 warning(s) 展开
4个回答
展开全部
#include<stdio.h>
main()
{double n=1,s=1;
while(n<=100)
{s*=n;
n++;
}
printf("1*2*3*...*%f=%.10e\n",n-1,s);
}
这么大的输出,最好用指数形式,如上
main()
{double n=1,s=1;
while(n<=100)
{s*=n;
n++;
}
printf("1*2*3*...*%f=%.10e\n",n-1,s);
}
这么大的输出,最好用指数形式,如上
追问
恩,谢谢,显示的是1*2*3*·····*100.00000=9.33e+157。怎么把那个100.000000变成100不要后面的那么多0
追答
输出用%.0f即可
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里需要s=1,不然连乘下去全变成0了。
更多追问追答
追问
还有什么错,100的阶层是不是冲出范围?那么求10的阶层
追答
{double n,s;
n=1;
s=1;
while(n<=10)
{s*=n;
n++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
位数过大了 超过lf的范围了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询