海豹王 2022-10-10 11:11 采纳率: 50%
浏览 60
已结题

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

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


#include<stdio.h>
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);
}
  • 写回答

2条回答 默认 最新

  • lzl2040 人工智能领域新星创作者 2022-10-10 11:46
    关注

    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);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月16日
  • 已采纳回答 10月10日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画