hollister美国纽约:int与float定义问题?C高手进!!

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 08:14:32
main()
{int i,t,n=20;float a=2,b=1,s=0;/*此处a与b为什么要定义为实型,为什么不能定义为整型呢?(注:a与b只要有一个定义为实型程序都运行正确)*/
for(i=1;i<=n;i++)
{s=s+a/b;t=a;a=a+b;b=t;}
printf("sum=%9.6f\n",s);}

A与B都定义为整形就得出另一个结果了,因为A/B会把结果的小数点约去.A与B只要有一个为实形,A/B的结果就是实形的

什么东西???
正确是什么意思??
整型/整型=整型(此整型为所得最大整数)
实型/整型=实型;
整型/实型=实型;
实型/实型=实型;

如果a和b都定义成int,下面的计算s=s+a/b,其中a/b的结果会是整形,导致结果错误。a与b任意一个定义成实型,根据类型计算法则,结果都是实型

因为只要a,b中有一个为实行,就可以把另一个转变成实行。建议你看一下数据的装换。

是谁规定的a和b非要都是实型的呢?书本?还是老师?正如LZ所说,a和b任意一个是实型都是正确的,那么,从运算过程看,b定义为整形可能比2个都是实型要更好一点,原因我相信LZ自己也能看出来了,有时候,程序是自己写出来的,没有必要理会一些条条框框,只要是比原来的效果好,即使是自己的见解,也不见得比书本差。