C语言关于int型和float型的区别

题目是:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
我的程序是
#include<stdio.h>
int main()
{
int i=1,b=1,a=2,t;
float sum=0;
for(;i<=20;i++)
{
sum=sum+a/b;
t=a;
a=a+b;
b=t;
}
printf("sum=%f\n",sum);
return 0;
}
我这个应该没错啊,但是得出来的答案是21,我把第五行和第六行改为int i=1;float b=1,a=2,t,sum=0;这样又能得出正确答案32.660261,我知道int型和float型的精准度是不同的,变量类型不同会影响到答案,但是a,b,t本来就是整型变量啊,改为float型也只是在小数点后面多加几个零而已,怎么会对结果的影响这么大呢?

[1] 如果 是 int a,b,c;
那么 c=a/b 将执行 整数除以整数 的 “整除” 运算。
例如 a=3, b=2; 则 c = a/b = 3/2 = 1 得 1
[2] 如果 是 float a,b,c; 那么 c=a/b 将执行 浮点 除法, c = 3.0 / 2.0 = 1.5
[3] 如果 是 int a=3,b=2; float c;
那么 c=a/b 将执行 整数除以整数 的 “整除” 运算, 运算结果转 float.
c = a/b = 3/2 = 1 = 1.0 得 1.0
如果 写成 c = (float)a / b 那么 会执行 c = 3.0 / 2 = 1.5 得 1.5
其中 (float)a 叫 “强制转化”成 浮点数。
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言中int和float有什么区别啊
一、指代不同 1、int:是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。2、float:于存储单精度浮点数或双精度浮点数。二、数据范围不同 1、int:int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。2、float:loat 类型提供了一个...

float和int有什么区别?
1、表示的数据范围不同。C语言中的int变量通常的表示范围为-2147483648~2147483647,也就是-2^31到2^31之间。而-3.4E+38 ~ 3.4E+38则是float类型表示的数据范围。float表示的数据范围要大于int表示的数据范围。2、变量赋值方法不同。C语言中,将i设定为一个int变量并赋值的方法为:int i=xx;,...

float和int的区别是什么
1、表示的数据范围不同。C语言中的int变量通常的表示范围为-2147483648~2147483647,也就是-2^31到2^31之间。而-4E+38~4E+38则是float类型表示的数据范围。float表示的数据范围要大于int表示的数据范围。2、指代不同int:是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变...

float和int有什么区别?
一、定义的区别 1、int是整数型,用于定义整数类型的数据。2、char是字符型,用于定义字符类型数据。3、float是单精度浮点型,可以准确表示到小数点后六位。二、大小的区别 1、int内存大小为4bybe。2、char内存大小为1bybe。3、float内存大小为4bybe。

c语言int、 float、 char有什么区别?
1、表示的数据范围不同 int是-32768~32767之间的整数,超过范围表示不下,小数也表示不了;char表示-128~127之间的整数,或者A、B、C、D等一个字符;float可以表示小数,而且范围很大,一般是10的-37次方~10的38次方之间。2、字符类型不同 int为整数型,用于定义整数类型的数据 ;float为单精度浮点...

float、 int有什么区别吗?
1、字节组成不同 int 和 float 类型在计算机中都占用 4 个字节,但 float 类型的 4 个字节由符号位、8 位二进制指数和 23 位尾数组成,而 int 类型的 4 个字节 构成所有 是一个整数。2、显示的数据范围不同 C语言中int变量通常的表示范围是-2147483648~2147483647,介于-2^31和2^31之间。

float和int的区别是什么?
1、字符类型不同 int是整型数据,如:int a 则a的值只能是整型,如a=3。char是字符型,如:char a 则a的值只能是字符型,如a='a'。float是浮点型数据,如:float a 则a的值只能是浮点型数据;如a=3.50;2、内存大小不同 int 的内存大小是4 个byte,char 的内存大小是1 个byte,float ...

在C语言中float 与int 有什么不同
float和int分别代表数据类型 用float定义的数据就是float型即浮点型,直白的说就是精确到小数点后面n位数,一般是8位 用int定义的数据就是int型即整型,也就是整数 建议仔细看课本。。。float max是定义max这个变量为浮点型变量,它里面存储的数据都是浮点型的,...

c++中 float 与int有什么区别
1、FLOAT:使用 IEEE(电气和电子工程师协会)格式。2、INT:程序中的整数一般采用十进制写法。用十进制方式写出的一个整数就是普通数字字符组成的一个连续序列,其中不能有空格、换行或其他字符。C语言规定十进制表示的数字不能是0,除非要写的整数本身就是0。三、特点不同 1、FLOAT:由于尾数的高...

C语言关于int型和float型的区别
[1] 如果 是 int a,b,c;那么 c=a\/b 将执行 整数除以整数 的 “整除” 运算。例如 a=3, b=2; 则 c = a\/b = 3\/2 = 1 得 1 [2] 如果 是 float a,b,c; 那么 c=a\/b 将执行 浮点 除法, c = 3.0 \/ 2.0 = 1.5 [3] 如果 是 int a=3,...

相似回答