为什么这段代码会给出这个输出?“;HCF为:1“;每当a%b!=0?
该程序通过公式/算法计算两个整数a和b的HCF—“a=bq+r”,其中a和b是两个数字,q是商,r是余数。为什么这段代码会给出这个输出?“;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
这是代码
#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
,因为我没有写过它!请再次评论以帮助!再一次,谢谢@RuudHeldermanfor(i=r;i=0;)
-你的意思是i==0
?for
循环的正确吗?停止条件看起来像一个赋值。这是有意的吗?如果是这样的话,那么如果我没记错的话,条件立即计算为false,因为I
为0,而且您总是打印hcf
的未初始化值,该值总是简洁地打印1。谢谢您的评论,先生!此处的停止条件不是赋值。我所说的i=0的意思是当i=0时停止循环。我反驳说我i
是0
,因为我没有写过它!请再次评论以帮助!再一次,谢谢@鲁德赫德曼