gpt4 book ai didi

c - 似乎忽略了对for循环头部变量的赋值

转载 作者:太空宇宙 更新时间:2023-11-04 04:18:35 25 4
gpt4 key购买 nike

void main()
{
int a, b, r;
//Finf GCD by Eucledian algorithm
scanf("%d %d", &a, &b);

for( ; b == 0; (a = b), (b = r)){
r = a % b;
printf("GCD is %d", a);
}
printf("GCD is %d", a);
}

不知何故这不起作用。
我将 a 分配给 b,将 b 分配给 r,但这似乎并没有改变 a 或 b 的值。

最佳答案

这个 for(;b==0;(a=b),(b=r)) 像这样设置 for 循环

  • 什么都不做初始化
  • 只要b等于0就做循环体
  • 在循环体执行之间,首先将 b 的值复制到 a,
    然后将 r 的值复制到 b

请注意,如果 b 从非零开始,则循环将永远不会执行。
否则,一旦 b 变为非零,循环将停止执行,因为更新为 r 的值。

(这在某种程度上是从评论中编译答案,以便将其从未回答的问题列表中删除。感谢 dddJewelsbbb。如果他们做出回答并要求我删除,我提议删除它。)

关于c - 似乎忽略了对for循环头部变量的赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49145077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com