关于C语言求余的运算。

 我来答
东若谷扶雀
2020-01-17 · TA获得超过3.6万个赞
知道小有建树答主
回答量:1.4万
采纳率:29%
帮助的人:843万
展开全部
看来楼主不太了解取余运算符%
例如:
40除以3等于13余1
则取余运算表达式为40%1=1
40除以4等于10余0
则取余运算表达式40%4=0
所以取余运算只取除法运算的余数
d
=
f[(b
/
c
)
%
4];
//
b/c=7/4=1;
1%4=1;
则d=f[1]=19;
if(f[(a
+
b
+
c
+
d)
%
4]
>
f[2])
//a+b+c+d=10+7+4+19=40;
40%4=0;
则if(f[0]>f[2]),即if(9>29),条
件为假,执行else,那么c+d=4+19=23(最终结果);
南宫怀雨姬赋
2020-02-23 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:776万
展开全部
你的注释好像不对啊。
a
=
f[0]
+
f[1]
+
f[2]
+
f[3];
//9+19+29+39=96,没问题
a
=
a
/
f[0];
//a=10,OK,小数去掉
b
=
f[0]
+
f[2]
+
f[3];
//9+29+39=77,OK
b
=
b
/
a;
//b=7,OK,小数去掉
c
=
(b
*
f[1]
+
a)
/
f[2];
//c=7*19/29=4,这里应该是c=(7*19+10)/29=4,结果倒是不变的,小数去掉
d
=
f[(b
/
c
)
%
4];
//d=
4,这里不对,d=f[(7/4)%4]=f[1%4]=f[1]=19,这里的%表示取余数,即1除以4余数是1;
if(f[(a
+
b
+
c
+
d)
%
4]
>
f[2])
//6>29,f[(a+b+c+d)%4]=f[(10+7+4+19)%4]=f[40%4]=f[0],所以是判断9>29?
printf("%d\n",
a
+
b);
else
printf("%d\n",
c
+
d);
//4+4=8,4+19=23
return
0;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
公西长征阚钗
2020-01-19 · TA获得超过3.5万个赞
知道小有建树答主
回答量:1.2万
采纳率:30%
帮助的人:1172万
展开全部
d的值计算错误了。
d
=
f[(b
/
c
)
%
4],b/c=7/4=1;1%4=1,所以d=f(1)=19.
(f[(a
+
b
+
c
+
d)
%
4]=f(0)

评论
0

0

加载更多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式