帮我看看这段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

到底我错在哪里了呢

请用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差不多