C 为什么我把a系列声明为浮点时它是int?
给定x和项数。 显示系列[1+x+x^2/2!+x^3/3!+..]的总和 我试过使用float,double类型。 我对整数使用了强制转换。 我试过很多东西C 为什么我把a系列声明为浮点时它是int?,c,C,给定x和项数。 显示系列[1+x+x^2/2!+x^3/3!+..]的总和 我试过使用float,double类型。 我对整数使用了强制转换。 我试过很多东西 #include <stdio.h> #include <math.h> int main() { int termos; float series, x, fact;//I have tried it with double because of pow //function
#include <stdio.h>
#include <math.h>
int main()
{
int termos;
float series, x, fact;//I have tried it with double because of pow
//function
printf("Input x:"); scanf("%f",&x);
printf("\nInput nº termos:"); scanf("%d",&termos);
for(int i=1,series=1;i<termos;i++)
{
for(int k=1,fact=1;k<=i;k++)
{
fact=fact*(float)k;
//printf("fact=%f ",fact);
}
series= series + pow(x,i)/fact;
printf("%f.....", series);//line 29
}
printf("\n\nFinal:%f \n", series);
return 0;
}
c:29:23:警告:格式指定类型“double”,但参数的类型为“int”
[-Wformat]
printf%f…,系列 这条线:forint i=1,series=1;这条线:forint i=1,series=1;i您正在声明一个带有
您应该始终使用-Wall编译代码以捕获此类错误 您正在声明一个带有
您应该始终使用-Wall编译代码以捕获此类错误 谢谢你的纠正和额外的建议。再次感谢。将赋值置于循环之前比将i的声明置于循环之前更好,因为后者不必要地扩大了i的范围。感谢您的更正和额外建议。再次感谢您。将赋值置于循环之前比将i的声明移至循环之前更好,因为后者不必要地扩大了i的范围。您还需要使用scanf验证输入读取。您还需要使用scanf验证输入读取。
series = 1;
for(int i=1;i<termos;i++)
for(int i=1,series=1;i<termos;i++)
series = 1;
for(int i=1;i<termos;i++)