我哪里错了?(我不知道.我刚开始study)

来源:百度知道 编辑:UC知道 时间:2024/04/28 07:30:52
long int yu(long int);
main()

{
long int s,h;
scanf("%d",&s);
h=1;
h=yu(1);
printf("%d",h);
}
long int yu(long int num);
{
long int h;
h=h*num;
if (num==s) then return h;
yu(num+1);
}

Declaration syntax error!!

long int yu(long int num); 多了个分号
s未定义
if语句后面不用跟then
yu(num+1); 会造成无穷递规,应提供递归停止条件

if (num==s) then return h;

C里没有if...then....,VB里才是这样的

一是语法错误,查一下书,很容易找出来,
最重要的是子程序里没有给h赋值,虽然你在主函数有h,但你在子程序理就相当于重新设置,属于形参,结束后会比释放,不做保留

错得很多哦
基础知识要打牢