能帮忙解释一个简单的c语言程序吗?
fun2(inta,intb){intc;c=a*b%3;returnc;}fun1(inta,intb){intc;a+=a;b+=b;c=fun2(a,b);retu...
fun2(int a,int b)
{int c;c=a*b%3;return c;
}
fun1(int a,int b)
{int c;a+=a;b+=b;
c=fun2(a,b);return c*c;
}
main()
{int x=11,y=19;
printf("%d\n",fun1(x,y));
} 展开
{int c;c=a*b%3;return c;
}
fun1(int a,int b)
{int c;a+=a;b+=b;
c=fun2(a,b);return c*c;
}
main()
{int x=11,y=19;
printf("%d\n",fun1(x,y));
} 展开
5个回答
展开全部
main调用fun1,这时fun1中的a为11,、b为19,经过a+=a;b+=b;后,a为22、b为38,然后fun1调用fun2,fun2中的a为22、b为38,经过c=a*b%3;后,c为2(836除以3得到的余数),fun2执行完毕,把2返回给fun1,2被赋给fun1的c,fun1执行完毕,返回2*2(即4)。
最后main接收fun1的返回值并将其输出
最后main接收fun1的返回值并将其输出
追问
fun2求出的值为什么还要返回给fun1啊 怎么不直接返回给main?
追答
谁调用它它就返回给谁,这是语法规定。。
展开全部
fun1(11,19) {a = 22 b= 38 }
c = fun2(22 39) { c = a * b %3 = 22 * 38 %3} = { c = 2 } c = 2
fun1 = c * c = 4
最后得4
c = fun2(22 39) { c = a * b %3 = 22 * 38 %3} = { c = 2 } c = 2
fun1 = c * c = 4
最后得4
追问
fun2求出的值为什么还要返回给fun1啊 怎么不直接返回给main?
追答
谁调用它它就返回给谁
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fun2(int a,int b)//对a、b的乘积对3求余,将结果赋给c,并返回c的值
{int c;c=a*b%3;return c;
}
fun1(int a,int b)
{int c;a+=a;b+=b;//a、b各自增一倍
c=fun2(a,b);return c*c;//调用fun2函数,将a、b对3求余的结果返回给c,函数返回c的平方
}
main()
{int x=11,y=19;
printf("%d\n",fun1(x,y));
}
{int c;c=a*b%3;return c;
}
fun1(int a,int b)
{int c;a+=a;b+=b;//a、b各自增一倍
c=fun2(a,b);return c*c;//调用fun2函数,将a、b对3求余的结果返回给c,函数返回c的平方
}
main()
{int x=11,y=19;
printf("%d\n",fun1(x,y));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对想,x,y分别自加一次即x=x+x,y=y+y,然后得到的结果相乘(x*y)再对三取余,取余直到什么意思吧,就是除3余的个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
啥地方不懂啊,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询