永发信息网

int a=11,b=2; do {a/=b++; }while(a>b);执行上述程序后,a和b的值分别是?

答案:6  悬赏:40  手机版
解决时间 2021-04-06 14:27
int a=11,b=2; do {a/=b++; }while(a>b);执行上述程序后,a和b的值分别是?
最佳答案
a=1,b=4;
a/=b++即a=a/(b++);
b++是先取出使用b的值,再自加1,整型的 / 计算为向下取整,
a=11/2=5.5,取整后为5,b再加1为3,a>b,继续循环
a=5/3=1,b=4,a
全部回答
  • 1楼网友:像个废品
  • 2021-04-05 19:14
a=1,b=3追问不好意思,错了。b=4呀
  • 2楼网友:毛毛
  • 2021-04-05 18:58
这么详细了,那自己试一下不就行了
  • 3楼网友:第四晚心情
  • 2021-04-05 17:25
a /= b++ 相当于 a = a / (b++)吧?
如果b++有个括号,所以b先做自增
然后支持a除以b自增后的值
所以:
第一次循环:
a = 11/3=3;
b = b + 1 = 3;
a !> b
循环结束!

如果b++没有括号,那么就是a = a/b++
这时应该先执行a/b=5 再做自增 所以a=6,b = b + 1 = 3;
再次执行第二次循环
a = 3
b = 4
结束循环

不过按照问题的描述,应该是b++没有括号的情况追问答案是a=1,b=4呀
  • 4楼网友:青尢
  • 2021-04-05 16:29
结果a=1,b=4, ++是运算过后加1的,/是整除。 do while 是运行后再判断
  • 5楼网友:往事埋风中
  • 2021-04-05 15:30
执行第一次 a=a/b++
这时候a=11/2
b=b++
所以a=5,b=3
然后判断while,a>b成立,继续执行
a=5/3
b=3++
所以a=1,b=4,while不成立
所以结果a=1,b=4
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯