// u和v为要输入的两个非负整数。
#include <math.h>
#include <stdio.h>
int main (void)
{
int q, u, v, x, y;
printf("Please type in two nonnegative integers.\n");
scanf("%i%i", &u, &v);
q=(int)sqrt(u*v);
x=u%q;
y=v%q;
while(x=y=0)
{
x=x%(q-1);
y=y%(q-1);
--q;
}
q=q-1;
printf("Their greatest common divisor is %i\n", q);
return 0;
}
while(x=y=0)
{
x=x%(q-1);
y=y%(q-1);
--q;
}
q=q-1;
改成
while(x!=0&&y!=0)
{
--q;
x=x%(q);
y=y%(q);
}
q=q-1;
x=y=0在c语言中这相当于把 x ,y 赋值成0. == 还是判断等于。=是赋值追问
{
x=x%(q-1);
y=y%(q-1);
--q;
}
q=q-1;
改成
while(x!=0&&y!=0)
{
--q;
x=x%(q);
y=y%(q);
}
q=q-1;
x=y=0在c语言中这相当于把 x ,y 赋值成0. == 还是判断等于。=是赋值追问
还是算不出正确结果, 应该是程序本身逻辑不对,谢谢啊
温馨提示:答案为网友推荐,仅供参考