#include<stdio.h>
int dfs(int num,int mum,int s){
if(s<0||num<0||mum<0)
{
return 0;
}
if(num<0||mum<0)
return 0;
if(num==0 && mum==0&& s==1)
return 1;
if(s==0 && num>0 && mum>=0 )
s=0.5;
}
int main()
{
printf("%d" ,dfs(5,9,2));
return 0;
}
为什么结果会是2
函数返回值是放在eax寄存器的,在程序中,如果有返回值,则会把返回值赋给eax。
如果没有,则会返回eax的默认值。这个值是多少不确定
5,9,2的话,这个函数等于啥也没干,也没有返回语句,2是个随机值吧
我执行这段代码就返回一个垃圾值,不是2
应该掉了一句 return 2;
也就是所有条件都不满足时,等于2。
#include<stdio.h>
int dfs(int num,int mum,int s)
{
if(s<0||num<0||mum<0)
{
return 0;
}
if(num<0||mum<0)
return 0;
if(num==0 && mum==0&& s==1)
return 1;
if(s==0 && num>0 && mum>=0 )
s=0.5;
return 2; //补上的这一句
}
int main()
{
printf("%d" ,dfs(5,9,2));
return 0;
}
答案错了
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!