gpt4 book ai didi

c - 如何让变量 n1 在最后一个 while 循环下执行计算并打印转换次数(变量 : noc)?

转载 作者:行者123 更新时间:2023-11-30 20:29:20 24 4
gpt4 key购买 nike

我的问题是,它正在识别变量并请求用户输入 n1n2,但是一旦我输入这两个值,我希望它评估 n1(起始值),然后根据它是偶数还是奇数执行/2* 3 + 1,达到1,然后打印n1的数量计算。

这是到目前为止我的代码。

#include <stdio.h>
void points(void);

int main(int argc, char* argv[])
{
points();
}
void points(void)
{
int n1, n2;
int noc = 0;
printf("Enter a starting point: ");
scanf("%d", &n1);
while (n1 < 2 || n1 > 1000)
{
printf("Please enter an integer 2-1000: ");
scanf("%d", &n1);
}
printf("Enter an ending point: ");
scanf("%d", &n2);
while (n2 < n1 || n2 > 10000)
{
printf("Please enter an integer bigger than the start point and <= 10000: ");
scanf("%d", &n2);
}
while (n1 != 1)
{
if (n1 % 2 == 0)
{
n1 = n1 / 2;
}
else (n1 % 2 == 1);
{
n1 = n1 * 3 + 1;
}
noc++;
}
printf("%d: %d", n1, noc);
}

最佳答案

if ... else 语句的 else 部分不接受条件。我们已经知道,如果 if 条件为 false,则执行 else — 无需重申与该条件相反的情况。

else (n1 % 2 == 1);中,因为那里也有一个分号,所以编译器会得到你想要的(n1 % 2 == 1)是一个陈述,而不是其他的条件。因此它会将其编译为 else 的语句,并且 if ... else 语句就此结束。后面带有 n1 = (n1 * 3) + 1; 的 block 是一个单独的语句,并且始终执行,无论 ifelse 是什么>.

此外,在 main 之前插入声明 voidpoints(void); 来声明 points

在编译器中打开警告并注意它们。编译器应该警告您未声明 points 并且未使用表达式 (n1 % n2 == 1) 的结果。

关于c - 如何让变量 n1 在最后一个 while 循环下执行计算并打印转换次数(变量 : noc)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58386108/

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