C语言问题 int a;float b; main() { a=2; b=a/3; printf("%f",b); }

请问为什么这个结果等于0.0000,还有怎样才能得到0.6666,高手帮帮忙,谢谢!

b=a/3,a为整型,再没赋值给b之前的值是2/3已经为零(两个整型数相除),题中根本就没出现0.666667的机会,赋值给b之后,变为float型,自动在后面追加了6个零,成为小数0.000000。
要想得到0.666667,那就把a变成浮点型的就行。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-02-09
a是整数型,b是浮点型。
默认的隐式类型转换中,整数型转换成浮点型,是截去小数部分,因此0.6666变成了0。
因此要得到浮点型数据,需要显式类型转换。
也就是:

b = (float)a / 3.;
第2个回答  2020-01-17
main()
{

int
a;

scanf("%d",&a);/*输入整数时,要有取地址符
&*/

if(a==123)

{

printf("zheng
que
de");

}

else

{

printf("cuo
wu
de
");

}

getch();
}
第3个回答  2009-02-09
b=a/3.0
第4个回答  2009-02-09
a=2; b=(float)a/3.0; printf("%f",b);本回答被提问者采纳

C语言问题 int a;float b; main() { a=2; b=a\/3; printf("%f",b); }
b=a\/3,a为整型,再没赋值给b之前的值是2\/3已经为零(两个整型数相除),题中根本就没出现0.666667的机会,赋值给b之后,变为float型,自动在后面追加了6个零,成为小数0.000000。要想得到0.666667,那就把a变成浮点型的就行。

...请给我答案和解释:若有说明语句:int a; float b;,以下输入语句正确的...
C %d是整型(int)的输出格式,%f是浮点型(float)的输出格式。

c语言 int a; float b; double c; scanf("%d,%lf,%lf",&a,&b,&c...
这是因为程序中输出数据的格式符指定错误。因为float型的输出必须%f而不能使用%lf格式符。,还有就是要注意输入数据时,要用英文的逗号分隔不同的数字:关于printf格式符更多的使用说明,见下述:详见:网页链接

C语言float问题
include <stdio.h>void main(){ int a, b;float div;a = 1;b = 2;div = (float)a \/ b;printf("div=%f", div);getchar();}

c语言程序填空题 1、如下程序的输出结果是 。 main( )
main( ){ int a=2,b=-1,c=3;if(a<b)if(b<0)c=0;else c++;printf(“c=%d”,c);} else 是与前面一个最近的if对应的,a=2,b=-1,a<b不成立,因此后面一个if--else---语句没有执行,c值没有改变。2、求 1! + 2!+3!+---+10!main ( ){ float s=0, t=1;...

c语言问题???
int d;c=a-b+7;d=b*c;a=b+c+d;b=-a;'Vtablea,2,6b,2,19c,2,0d,2,0of Vtable'Vupdate1,6;2,193,04,03,655304,-1141,-1012,101of Vupdateof Practicevoid main(){long x,y;int a,b,c,d;x=5;y=6;a=7;b=8;c=x+a;d=y+b;printf("c=x+a=%d,d=y+b=%d\\n",c...

用c语言,输入两个浮点数a和b,输出a\/b
int main(){ float a,b;printf("请输入两个浮点数a b:");scanf("%f %f",&a,&b);if(0==b)printf("ERROR\\n");else printf("%.2f\\n",a\/b);return 0;}

c语言 从键盘输入2个数,求2个数的平均数,小数点后保留1位输出._百度...
include<stdio.h>void main(){ float a,b;printf("输入两个数(逗号隔开):"); scanf("%f,%f",&a,&b);printf("数%.1f和数%.1f的平均数等于%.1f\\n",a,b,(a+b)\/2);}

C语言浮点型数的问题
浮点变量对于任何数都是化成小数来表示的,比如9表示为:1.001*10^3 我想楼主应该知道,浮点数的小数部分只能保存一定长度的数,如果现在假设有一个只能保存2位小数的浮点变量的话,那1.001就必须进行四舍五入了,照搬十进制数的四舍五入,如果下一位是1,则进一,是0则不进一,所以这个数就变成了1.01...

C语言 设定义:int a;float b;执行scanf("%2d%f",&a,&b);语句时,
2d决定了a只能接受两位数字,所以a的值为87 你的%2d%f是连在一起的,那么按照默认约定,输入的数据也应该是连续的,中间没有空格。否则会将空格作为输入的结束符看待。6和5中间有一个空格,所以输入到6就结束了,后面的543.0被无视。则将6赋值给b,打印b的值即为6.00000 ...

相似回答