C语言.高手请进帮我解决下..谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/13 18:59:35
下面程序的输出结果是
#include<stdio.h>
funct(int x)
{ int k,p;
switch(x)
{ case 0:
case 1: return(3);
}
p=x-funct(x-2);
return p;
}
main()
{ printf(“%d\n”,funct(7)); }

麻烦大家帮忙分析分析这个程序...3Q3Q3Q拉...

#include<stdio.h>

funct(int x)
{
switch(x)
{
case 0:
case 1: return(3);
default:
return x-funct(x-2); //这里直接写成这样的
}
}
void main()
{ printf("%d\n",funct(7)); }

程序输出结果是:2

错误的函数重载

程序写错啦,switch那你给传递的参数是7,switch里边没有匹配的case,或者你加个default,不让程序编译都通不过

输出 3
switch(x) 里的X为7。CASE里没有7。所以从CASE 0开始运行。
然后运行CASE 1 :return(3); 所以返回值就是3。所以输出3