为什么输出是0,哪里出现了问题? 把乘号改成加号却能求前100和
①y要初始化为1
②main()改成:int main(){ return 0;}
#include<stdio.h>
int main()
{
int i;
float y=1.0;
for(i=1;i<=100;i++){
y=y*i;
}
printf("%f",y);
return 0;}
y附一个初值1,不然为0
你要先给y初始化为1
超出范围了呀,程序没有问题,但你从一乘到100已经超出范围了,要做这个乘法的话,得用数组保存数字做乘法。你可以搜搜这一块,学习一下这种算法也很常见。
有帮助的话采纳一下哦!
100的阶乘很大的,long long都装不下。这题需要自定义数据结构(一般用链表)开存储超大数。