gpt4 book ai didi

c - 在 collat​​z 序列中,如 34,17..2,1,每行打印 40 个字符

转载 作者:行者123 更新时间:2023-11-30 19:25:56 25 4
gpt4 key购买 nike

从类似于 34,17,52,26,13...4,2,1 的 collat​​z 序列列表中。我想为每行打印 40 个字符,例如“50, 25, 76, 38, 19, 58, 29, 88, 44, 22,” 将是第一行 40 个字符,然后是下一行,并且应在最后一个数字为 4, 2, 1 时停止当遇到 4、2、1 序列时,我无法停止程序。

我首先创建了所需的数字序列。尝试通过 while 条件为 1 的 for 循环打印数字的帖子。

int length;
int *ptr;
int i = 50, j = 0;
for (i; i >= 2; )
{
if (i % 2 == 0)
{
i = i / 2;
}
else if (i % 2 != 0)
{
i = (3 * i) + 1;
}
ptr[j] = i;
printf("Total Value: %d, \n", ptr[j]);
j++;
}
for (i = 0; i < 50; )
{
j = 10 + i;
while (i < j)
{
printf("%d, ", ptr[i]);
i++;
if (ptr[i] == 1)
{
break;
}
}
printf("\n");
}

预期结果:

50, 25, 76, 38, 19, 58, 29, 88, 44, 22,
11, 34, 17, 52, 26, 13, 40, 20, 10, 5,
16, 8, 4, 2, 1,

最佳答案

首先,您的代码会导致我的计算机出现段错误。您将 ptr 声明为指向整数 int *ptr; 的指针,但您将其视为数组并将值存储到其中 ptr[j] = i ;。如果要将数据放入数组中,则需要 malloc 缓冲区或将 ptr 声明为堆栈上的数组,即 int ptr[SIZE]

指针本身并不是一种存储手段。如果你想有一个数组来存储,那么你需要在堆栈或堆上显式分配一个数组。

关于c - 在 collat​​z 序列中,如 34,17..2,1,每行打印 40 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58243864/

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