小白求帮忙看下代码哪里错了

2025-04-29 21:37:23
推荐回答(1个)
回答1:

三个if语句后面需要执行的语句都是两句,都需要用大括号括起来。

if(n%2==1&&n!=1) {n=3*n+1; continue;}//添加大括号
if(n%2==0) {n=n/2; continue;}//添加大括号
if(n==1) {printf("%d",a); break; }//添加大括号

修改后就没有问题了。不过,这个程序比较繁琐,提供一个程序:

#include 
int main(){
int i,n;
scanf("%d",&n);
for(i=0;n-1;i++)
n=(n%2?n*3+1:n/2);
printf("%d",i);
return 0;
}