帮我看看这段C语言 得到的结果和我预想的不一样...
来源:百度知道 编辑:UC知道 时间:2024/06/22 22:17:21
#include<stdio.h>
main()
{
int a=3,b=7,c;
c=b%a;
printf("c=%d,b/a=%f\n",c,b/a);
printf("%f,%f\n",1.0*b/a,b/(1.0*a));
}
输出的是c=1,b/a=0.000000
2.333333,2.333333
我预想的结果是c=1,b/a=2.333333
2.333333,2.333333
到底我错在哪里了呢
main()
{
int a=3,b=7,c;
c=b%a;
printf("c=%d,b/a=%f\n",c,b/a);
printf("%f,%f\n",1.0*b/a,b/(1.0*a));
}
输出的是c=1,b/a=0.000000
2.333333,2.333333
我预想的结果是c=1,b/a=2.333333
2.333333,2.333333
到底我错在哪里了呢
请用double a=3.0, b=7.0, c;
把b/a改成float(b)/a或者把a强制转换下就可以
b/a等于2属于整形 但是=f%实型 就有问题了
先强制转换b/a成实型即可 float(b)/a
格式不对.作0处理.
b/a=2.000000差不多