C 的新手并试图制作一个 collat​​z 猜想程序,但它不起作用,我不知道为什么

New To C and trying to make a collatz conjecture program but it's not working and i don't know why

这是我对解决 collat​​z 猜想的 c 程序的尝试 我是 c 的新手,想知道为什么我的代码不起作用

#include <stdio.h>
int main()
{
    int num = 0;
    int count = 0;
    printf("Enter your number: ");
    scanf("%d", &num);
    while ("%d" != 2,num);{
        if (num %2 == 0)
        {
                num = num / 2;
                printf("%d", num);
                count = count + 1;

        }
        else
        {
                num = num * 3 + 1;
                printf("%d", num);
                count = count + 1;
        }
    }

    if (num == 1);
    {
        printf("%d", count);
    }
    return 0;
}

你的语法错误。

while 中的条件应该是布尔条件,num 变量应该不等于 1。 我还编辑 printfs 以更具启发性,并向它们添加新行。我排除了最后一个 if 条件,因为它是多余的。当代码完成 while 循环时,num 变量将为 1.

我想你想做的是:

#include <stdio.h>
int main()
{
    int num = 0;
    int count = 0;
    printf("Enter your number: ");
    scanf("%d", &num);
    while (num != 1)
    {
        if (num %2 == 0)
        {
                num = num / 2;
                printf("num = %d\n", num);
                count = count + 1;

        }
        else
        {
                num = num * 3 + 1;
                printf("num = %d\n", num);
                count = count + 1;
        }
    }

    printf("count = %d", count);
    return 0;
}