c语言简单问题!求帮助。。。。。
下面是正确的代码,我想把中间变量t省略,不用中间变量!!#include"stdio.h"voidmain(){floats=0,f1=2,f2=1,sign=1,t,n...
下面是正确的代码,我想把中间变量t省略,不用中间变量!!
#include "stdio.h"
void main(){
float s=0,f1=2,f2=1,sign=1,t,n; /*累加器赋初值*/
for(n=1;n<=10;n++){ /*循环10次*/
s=s+sign*f1/f2; /*累加器当前值=累加器原来的值+新的要加的数据*/
sign *=(-1);
t=f2;
f2=f1;
f1=f1+t; /*为求下一个要加的数据做准备*/
}
printf("s=%f\n",s);
}
后面为我打的省略中间变量的代码!为什么结果不正确呢?求帮助
# include "stdio.h"
void main()
{
int t1=2,t2=1,i,k=1;
float sum=0;
for(i=1;i<=10;i++)
{
sum = sum + k*t1/t2;
t1 = t1 + t2;
t2 = t1 - t2;
k *= (-1);
}
printf("%f",sum);
} 展开
#include "stdio.h"
void main(){
float s=0,f1=2,f2=1,sign=1,t,n; /*累加器赋初值*/
for(n=1;n<=10;n++){ /*循环10次*/
s=s+sign*f1/f2; /*累加器当前值=累加器原来的值+新的要加的数据*/
sign *=(-1);
t=f2;
f2=f1;
f1=f1+t; /*为求下一个要加的数据做准备*/
}
printf("s=%f\n",s);
}
后面为我打的省略中间变量的代码!为什么结果不正确呢?求帮助
# include "stdio.h"
void main()
{
int t1=2,t2=1,i,k=1;
float sum=0;
for(i=1;i<=10;i++)
{
sum = sum + k*t1/t2;
t1 = t1 + t2;
t2 = t1 - t2;
k *= (-1);
}
printf("%f",sum);
} 展开
4个回答
展开全部
sum = sum + k*t1/t2;——》sum = sum + k*1.0*t1/t2;
整型与浮点运算得浮点数、整型与整型运算还得整型、k*1.0就变成浮点了、
整型与浮点运算得浮点数、整型与整型运算还得整型、k*1.0就变成浮点了、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把K,t1,t2换成float变量应该就可以了
整型数的除法和浮点数的除法结果是不一样的!
(int )3/2==1
((float)3/2>1.49999999999)&&((float)3/2<1.500000000000001)
整型数的除法和浮点数的除法结果是不一样的!
(int )3/2==1
((float)3/2>1.49999999999)&&((float)3/2<1.500000000000001)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看你的程序!!t1和t2!!是int类型!当然不对!!t1和t2是int类型相除的话...= = !如果相除的话,得到的也是int类型,是不会有小数的。原来的程序中想实现的应该是0+2+3/2+4/3.....有小数的!!当然会出错!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询