Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这段代码会给出这个输出?“;HCF为:1“;每当a%b!=0?_C - Fatal编程技术网

为什么这段代码会给出这个输出?“;HCF为:1“;每当a%b!=0?

为什么这段代码会给出这个输出?“;HCF为:1“;每当a%b!=0?,c,C,该程序通过公式/算法计算两个整数a和b的HCF—“a=bq+r”,其中a和b是两个数字,q是商,r是余数。 这是代码 #include <stdio.h> int main() { int a, b; printf("enter both numbers a>b to find HCF\n"); scanf("%d %d",&a, &b); int q, r, hcf; if(a%b == 0) { r = 0; hcf = r; } else

该程序通过公式/算法计算两个整数a和b的HCF—“a=bq+r”,其中a和b是两个数字,q是商,r是余数。
这是代码

#include <stdio.h>
int main() {
int a, b;
printf("enter both numbers a>b to find HCF\n");
scanf("%d %d",&a, &b);
int q, r, hcf;
if(a%b == 0) {
    r = 0;
    hcf = r;
} else {
    q = a/b;
    r = a%b;
}
int i;
for(i = r; i = 0;) {
    a = b;
    b = i;
    hcf = b;
    q = a/b;
    i = a%b;

}
printf("HCF is: %d", hcf);
return 0;
}
#包括
int main(){
INTA,b;
printf(“输入两个数字a>b以查找HCF\n”);
scanf(“%d%d”、&a和&b);
intq,r,hcf;
如果(a%b==0){
r=0;
hcf=r;
}否则{
q=a/b;
r=a%b;
}
int i;
对于(i=r;i=0;){
a=b;
b=i;
hcf=b;
q=a/b;
i=a%b;
}
printf(“HCF为:%d”,HCF);
返回0;
}

for循环不正确。您需要使用
==
而不是
=
=
运算符用于赋值,
=
用于比较。另外,您希望循环在
i==0时停止,因此条件应为
i!=0
。以下循环适用于我:

for(i = r; i != 0; ) {
   a = b;
   b = i;
   hcf = b;
   i = a%b;
}

for循环不正确。您需要使用
==
而不是
=
=
运算符用于赋值,
=
用于比较。另外,您希望循环在
i==0时停止,因此条件应为
i!=0
。以下循环适用于我:

for(i = r; i != 0; ) {
   a = b;
   b = i;
   hcf = b;
   i = a%b;
}

for(i=r;i=0;)
-您的意思是
i==0
?for
循环是否正确?停止条件看起来像一个赋值。这是有意的吗?如果是这样的话,那么如果我没记错的话,条件立即计算为false,因为
I
为0,而且您总是打印
hcf
的未初始化值,该值总是简洁地打印1。谢谢您的评论,先生!此处的停止条件不是赋值。我所说的i=0的意思是当i=0时停止循环。我反驳说我
i
0
,因为我没有写过它!请再次评论以帮助!再一次,谢谢@RuudHelderman
for(i=r;i=0;)
-你的意思是
i==0
?for
循环的
正确吗?停止条件看起来像一个赋值。这是有意的吗?如果是这样的话,那么如果我没记错的话,条件立即计算为false,因为
I
为0,而且您总是打印
hcf
的未初始化值,该值总是简洁地打印1。谢谢您的评论,先生!此处的停止条件不是赋值。我所说的i=0的意思是当i=0时停止循环。我反驳说我
i
0
,因为我没有写过它!请再次评论以帮助!再一次,谢谢@鲁德赫德曼