gpt4 book ai didi

c - 为什么这段C代码会产生无限循环?

转载 作者:行者123 更新时间:2023-11-30 21:40:40 27 4
gpt4 key购买 nike

#include <stdio.h>

int count_cycle(int n);

int main() {
int N; scanf("%d", &N);
printf("%d",count_cycle(N));
return 0;
}

int count_cycle(int n) {
int N = n; int _N;
int count = 0;
int x, y;
while(_N!=N) {
x = N / 10;
y = N % 10;
_N = 10 * y + ((x+y)%10);
count++;
}
return count;
}

我刚刚练习了有关上面表示的具有循环的特定自然数的基本算法。但这段代码的结果是无限循环。我想要的伪代码是这样的。

function count_cycle    
count = 0
==loop==
N = 10x + y (0 <= x,y <= 9)
N' = 10 * y + (x+y) mod 10
if N' == N then
break;
else then
N = N'
count++
continue;
====
return count

我应该如何让这段代码正常工作?

最佳答案

您错过了 _N 的初始化,因此它永远不会等于 N,并且您将永远陷入 while 循环

关于c - 为什么这段C代码会产生无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48201743/

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