考拉兹猜想 n!=1时输出无结果

如题,考拉兹猜想,求n变换到1经过的步骤和全程最大值,编译通过,但n!=1时输出没有结果(不是无限循环)


#include
void func(int n,int s,int tep,int max);

int main(){
    int n;int s=0;int max;int tep=0;
    scanf("%d",&n);
    
    switch(n){
        case 1: {s=0;max=1;
        printf("%d %d",s,max);
            break;
        }
        
        default: {void func(int n,int s,int tep,int max); 
            break;
        }
    }
}



void func(int n,int s,int tep,int max){
    do{
    tep=n;max=n;
    if(n%2 == 1)
    {n=3*n+1;}
    else if(n%2==0)
    {n=n*(1/2);}
    s=s+1;
    if (n > tep) 
    {max=n;}
}while(n!=1);

printf("%d %d",s,max);
}

1.func函数没有调用,改成如下

default: 
            void func(int n,int s,int tep,int max); 
            func(n,s,tep,max);
            break;

2.n=n*(1/2);不能这么写,因为整型与整型运算还是整型,改成n=n*(1.0/2);

n=n*(1/2);有问题啊,1/2结果为0,那n就一直是0了啊
你公式写错了吧?应该是n = n/2吧