一个代码执行上的简单问题


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
    int n;
    int step=0;
    scanf("%d",&n);
    if(n<=0){
        return 0;
    }
    if(n%2==0){
        while(n!=1){
            n=n/2;
            step++;
        }
        return step;
    }
    if(n%2!=0){
        n=3*n+1;
        while(n!=1){
            n=n/2;
            step++;
        }
        return step;
    }
    return 0;
}

img


这是为什么没有返回值?

这不是返回了,2就是返回啊

看你截图的那段英文不是有return value 2么

代码没有问题 你这里的返回值是针对main主函数啊,没加打印,主函数返回程序就执行结束了,你反回也看不到

至于怎么获取main函数的返回值,还真有办法,但是不是代码内部了。。。

你可以自己写个函数,把你内部功能提取,然后main函数里测试你的函数返回值,进行打印。

img