c语言编程问题 求救!!

2024-11-22 16:26:07
推荐回答(2个)
回答1:

逻辑错误,并且你的用例也反映了这个错误 如a=3 b=-3 并且3为最大绝对值时,你的第一个判断却会跳过, if(d==-a) 在本题的含义是
如果a的绝对值最大,且为负数 才会判断最大
在a为正数的前提下,若b,c出现相同绝对值的负数,就悲剧了。。

回答2:

d=max(max(c,-c),max(max(b,-b),max(a,-a)));

这句能编译过也挺神奇,明明你定义的两个参数,却兼容3个实参?考虑修改一下。