请问论坛大佬解释一下printf输出long double 类型的值时输出错误的原因。

作为一个非科班出生的老维修工,平时的爱好就是学学电路,编编程,不够专业,主要是自己本来就就喜欢捣鼓电子类的玩意,再加上玩游戏技术太差,
所以基本上下闲余时,除了家人,就是和电脑相伴。最近在学菜鸟编程100例,做着做着,发现一个问题。搜索半天也没能太明白。
想到在论坛潜水多时,顺带脚冒泡提个问题,图片说明
如图所示,
一个很小的程序。gcc的版本是8.1.0图片说明图片说明
在bug里看,sum的值显示是对的,但是在终端里,总是显示0,查了说是%llf或者%Lf没写对,但是我都试了,没有用,所以想问问各位大佬,这是为啥呢?

%f 用这个,代表输出实数,整数完全输出,小数只输出6位,多的四舍五入。若是要指定输出的小数位数限制用 %.mf