我想要求1+1/1!+1/2!+1/3!……1/49!,这段代码写出来有什么问题么,为什么输出的1

#include
using namespace std;

int main()
{
long int mm = 1,nn=0;
for (int n = 1; n <= 49; n++)
{
for (int k = 1; k <= n; k++)
{
mm = mm*k;

    }
    nn = nn + 1 / mm;

}
cout << nn << endl;
return 0;

}

定义成double类型

你的nn声明为整形,应声明为浮点型,而且你的mm初始化应在第一层循环内

看不懂。。你重新写个格式化的。。这么看好累

当然mm也应声明为浮点型

1、要得到小数,至少类型要定义正确,short,int,long都是整数;
2、结果定义正确后,例如float 或者double,除数的阶层也要强转为float或者double;
3、看到有规律的计算一定要尝试采用递归的思维解决问题,这样可以使得程序可读性和艺术性见长哦!