C 的新手并试图制作一个 collatz 猜想程序,但它不起作用,我不知道为什么
New To C and trying to make a collatz conjecture program but it's not working and i don't know why
这是我对解决 collatz 猜想的 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;
}
这是我对解决 collatz 猜想的 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;
}