c语言中,以下程序输出结果是什么?
intabc(intu,intv);main(){inta=24,b=16,c;c=abc(a,b);printf("%d\n",c);}intabc(intu,intv...
int abc ( int u , int v ) ;
main ( )
{
int a = 24 , b = 16 , c ;
c = abc ( a , b ) ;
printf ( "%d\n" , c ) ;
}
int abc ( int u , int v )
{
int w ;
while ( v )
{ w = u%v ; u = v ; v = w }
return u ;
}
提问:
1、以上程序输出结果是什么?
2、求详细步骤过程 展开
main ( )
{
int a = 24 , b = 16 , c ;
c = abc ( a , b ) ;
printf ( "%d\n" , c ) ;
}
int abc ( int u , int v )
{
int w ;
while ( v )
{ w = u%v ; u = v ; v = w }
return u ;
}
提问:
1、以上程序输出结果是什么?
2、求详细步骤过程 展开
展开全部
输出为8
其实这是一个球最大公约数的函数,用的是欧拉公式
a b两个数的最大公约数为选大的%小的,然后替换
至于你说的步骤,你可以把abc(24,16)代入
开始v=16
while: w=8 u=16 v=8
while: w=0 u=8 v=0 退出循环
返回u=8
其实这是一个球最大公约数的函数,用的是欧拉公式
a b两个数的最大公约数为选大的%小的,然后替换
至于你说的步骤,你可以把abc(24,16)代入
开始v=16
while: w=8 u=16 v=8
while: w=0 u=8 v=0 退出循环
返回u=8
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-02
展开全部
结果为8,分析
int abc ( int u , int v )
这个函数,while(16) 24%16=8 即 w=8,u=16, v=8;第2次 while(8) 16%8=0 即w=0,u=8,v=0
此时while(0)跳出循环,所以程序返回8.
int abc ( int u , int v )
这个函数,while(16) 24%16=8 即 w=8,u=16, v=8;第2次 while(8) 16%8=0 即w=0,u=8,v=0
此时while(0)跳出循环,所以程序返回8.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用子函数,while 第一次循环w~8.u~16.v8*第二次,0停止循环。返回16拿c接收
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询