为什么这段代码给出了这个输出 - " HCF是:1"只要%b!= 0?

时间:2018-06-14 08:42:32

标签: 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 {
    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;
}

1 个答案:

答案 0 :(得分:2)

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

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