C语言 求最大公约数 辗转相除法的问题
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/02 16:16:42
C语言 求最大公约数 辗转相除法的问题
while (r=x%y)
{
\x05x=y;
\x05y=r;\x05
}
这是基本的
如果我改成
while(r!=0)
{
r=x%y;
x=y;
y=r;
}
就是错的.
请问第二种为什么是错的?会出现死循环.
while (r=x%y)
{
\x05x=y;
\x05y=r;\x05
}
这是基本的
如果我改成
while(r!=0)
{
r=x%y;
x=y;
y=r;
}
就是错的.
请问第二种为什么是错的?会出现死循环.
==x%y; //这只是个逻辑比较,没有给r赋值
改成
r = x%y; //这才是给r赋值
再问: 打错了。。在编译器里是=
再答: 你代码在while前r有没有初始化
再问: 没有。这个的问题麽?是要给r先赋值x%y?
再答: 先给r一个非0值,但那样做不如第1个方式简练 第1个就是先给r计算结果,然后强制把r转型为bool判断它是不是非0,然后继续循环
再问: 还有就是 第一个方程是什么原理啊?我自己又编的 r=x%y; while(r!=0) {x=y; y=r; r=x%y;} 一样麽?
再答: 对,你这个写法和第1个是等价的
改成
r = x%y; //这才是给r赋值
再问: 打错了。。在编译器里是=
再答: 你代码在while前r有没有初始化
再问: 没有。这个的问题麽?是要给r先赋值x%y?
再答: 先给r一个非0值,但那样做不如第1个方式简练 第1个就是先给r计算结果,然后强制把r转型为bool判断它是不是非0,然后继续循环
再问: 还有就是 第一个方程是什么原理啊?我自己又编的 r=x%y; while(r!=0) {x=y; y=r; r=x%y;} 一样麽?
再答: 对,你这个写法和第1个是等价的
C语言 求最大公约数 辗转相除法的问题
c语言辗转相除法求最大公约数
什么是辗转相除法怎样用c语言编程实现,用辗转相除法求两个数的最大公约数
C语言程序填空:用辗转相除法求两个整数的最大公约数、最小公倍数.
C语言程序:用“辗转相除法”求两个正整数的最大公约数(程序填空)
C语言程序 设计:用辗转相除法求两个正整数的最大公约数
C语言程序填空:用辗转相除法求两个整数的最大公约数 帮帮
c语言编写程序用辗转相除法求两个正整数m和n的最大公约数
C语言序填空题 用辗转相除法求2正整数的最大公约数
C语言 用辗转相除法求最大公约数 编写C语言程序
辗转相除法求最大公约数
C语言:关于用辗转相除法递归求最大公约数,下面的程序有错误,请帮我改一下,