100的阶乘C语言求解

img

为什么输出是0,哪里出现了问题? 把乘号改成加号却能求前100和


①y要初始化为1main()改成: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都装不下。这题需要自定义数据结构(一般用链表)开存储超大数。