C语言程序设计!求解释!

若输入12和8,以下程序的输出结果为(  )
main()
{ int a,b,num1,num2,temp;
scanf(“%d,%d”,&num1,&num2);
if(num1>num2)
{temp=num1; num1=num2;num2=temp;}
a=num1; b=num2;
while(b!=0)
{temp=a%b; a=b;b=temp;}
printf(“%d,%d”,a,num1*num2/a);
}
我知道答案我想知道解题思路,为什么 a=b a不是等于12吗。为什么答案输出a=4

输入12和8,赋值给num1和num2。即:num1=12,num2=8
num1大于num2时,交换。即:num1=8,num2=12
a=num1; b=num2;即:a=8,b=12
while(b!=0)
{temp=a%b; a=b;b=temp;}当b不为0时循环:
第一次:temp=8%12=8,a=12,b=8
第二次:temp=12%8=4,a=8,b=4
第三次:temp=4%4=0,a=4,b=0
输出a=4追问

谢谢,昨天跟朋友看出问题的关键了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-20
a就是等于12,在我的IDE当中试过了。追问

我试过了是等于4

追答

第2个回答  2021-03-29

一分钟读懂.c语言程序设计

相似回答