请问我已经乘1.0,强行转化为浮点型了,为什么输出还是0.000,算不出结果

请问我已经乘1.0,强行转化为浮点型了,为什么输出还是0.000,算不出结果
#include <stdio.h>

int main()
{
int n,s=0,t=1;
scanf ("%d",&n);
for (int sign=1,i=1;i<=n;i++)
{
s=s+sign1.0/t;
t=t+3;
sign=-1
sign;
}
printf ("sum = %.3lf",s);
return 0;
}

你把表达式的结果转换成浮点型了,问题是最后你又存回int型的变量里,这一存就把小数点都存没了
这就好比你千辛万苦终于从股票市场里赚了点钱,然后都存骗子那里去了

用乘以1.0的形式只会让运算结果成功的完成正确计算的任务。
有两个点
1.实际上pintf识别到的的数据类型仍然是int(这里编译器应该会给一个warning)
2.

//在代码中 “s=...” 这个左值让s的类型依旧保持在int,所以运算一直无法正确运行,又因为左值无法进行强制转换,所以在这个强制转换的应用中必须初始化正确的数据类型,不然逻辑上怎么改都会是0.000。

s=s+sign*1.0/t;

在代码中 “s=...” 这个左值让s的类型依旧保持在int,所以运算一直无法正确运行,又因为左值无法进行强制转换,所以在这个强制转换的应用中必须初始化正确的数据类型,不然逻辑上怎么改都会是0.000。

哪有啥用啊,s还是整型啊。把s改为double型

s是int类型,最后输出也不对呀,int类型怎么用%3lf

#include <stdio.h>

int main()
{
int n,t=1;
double s=0;
scanf ("%d",&n);
for (int sign=1,i=1;i<=n;i++)
{
s=s+sign*1.0/t;
t=t+3;
sign=-1*sign;
}
printf ("sum = %.3lf",s);
return 0;
}