请麻烦给解释下
#include<stdio.h>
int a(int b)
{
int c;//阶乘结果
if(b<0)
{
printf("输入错误!\n");
}
else if(b==0||b==1)
{
c=1;
}
else
{
c=a(b-1)*b;
}
}
int main()
{
int b=5;
printf("%d\n",a(b));
return 0;
}
有以下几个问题想请教下大家:
由于粗心,没有在自定义函数里面添加return语句,但是发现这样也可以得到正确的结果(从网上了解到在c语言中如果没有return语句,软件会默认为return 0)如果默认为return 0的话,最后的结果不就应该是0吗,怎么答案还是正确的?
如果把b赋值为负数,由于return 0的关系程序输出的结果会为(输入错误!
0)怎么把后面的0去除?