我先计算这个 b/3*(int)(a+c)/2 可结果怎么会得出0呢??不是7吗?
追答你的abc数值分别是多少
追问对了 不好意思 我忘记打出来了
int b=7 float a=2.5 c=4.7
能不能那部分把你具体的代码 发出来看看 包括初始化
追问对了 不好意思 我忘记打出来了
int b=7 float a=2.5 c=4.7
你可能在哪弄错了吧 顺序肯定是这样的
看我运行的结果,如下
你回答我这个就行了 a+(int)7%4 先计算哪个再计算哪个???
追答先把7转换成int类型,然后对4求余,最后加上a。就ok了
我先计算这个 b/3*(int)(a+c)/2 可结果怎么会得出0呢??不是7吗?
追答你没有告诉a、b、c的具体值,所以我不好判断
追问你回答我这个就行了 a+(int)7%4 先计算哪个再计算哪个???
追答计算机自动将7转换成int类型,然后%4,最后+a
我先计算这个 b/3*(int)(a+c)/2 可结果怎么会得出0呢??不是7吗?
追答“b/3*(int)(a+c)/2”,这个的结果怎么可能是0?你确定你没有搞错?
你定义的a,b,c,是多少?最后要有一个变量用来存放结果。。。
对了 不好意思 我忘记打出来了
int b=7 float a=2.5 c=4.7我把这个表达式放在printf后了 所以不用变量来存放结果一样没事的
最后结果确实是7,是你编译器出错了。。
我先计算这个 b/3*(int)(a+c)/2 可结果怎么会得出0呢??不是7吗?
追答你是不是其他地方有问题,我运行下得出就是7呀,要不你试试
#include
main()
{
int b=7,x;
float a,c;
a=2.5;
c=4.7;
x=b/3*(int)(a+c)/2;
printf("%d\n",x);
}
谢谢你的热心帮助
追答不客气,助人乃快乐之本嘛,加油!祝你学习顺利!
我先计算这个 b/3*(int)(a+c)/2 可结果怎么会得出0呢??不是7吗?
对了 不好意思 我忘记打出来了
int b=7 float a=2.5 c=4.7
因为是整型,所以7/3=2
然后 int(2.5+4.7)=7
所以b/3*(int)(a+c)/2 = 2*7/2 =7