c++错误不知道如何改正,请高手相助!

来源:百度知道 编辑:UC知道 时间:2024/06/03 12:47:49
这是我的程序:程序的目的在于求出n的阶乘,即n!

#include<stdio.h>
int f(int n)
{
int k,s=1;
for(k=n;k>0;k--)
{
s*=k;
return s;
}
void main()
{
int a,b;
scanf("%d",&a);
b=f(a);
printf("%d\n",b);
}
运行后,出现如下错误:
C:\Documents and Settings\Administrator\桌面\3.c(10) : error C2143: syntax error : missing ';' before 'type'
C:\Documents and Settings\Administrator\桌面\3.c(13) : error C2065: 'a' : undeclared identifier
C:\Documents and Settings\Administrator\桌面\3.c(14) : error C2065: 'b' : undeclared identifier
执行 cl.exe 时出错.

3.obj - 1 error(s), 0 warning(s)

本人还是在校初学者哈,希望得到前辈们的帮助,谢谢!

你的int f(int n)函数最后少了一个},就是这个问题,其它的没问题。

#include<stdio.h>
int f(int n)
{
int k,s=1;
for(k=n;k>0;k--)
{
s*=k;
}
return s; //你的程序执行一次FOR后就退出那个函数了
}

void main()
{
int a,b;
scanf("%d",&a);
b=f(a);
printf("%d\n",b);
}

不过这样算阶乘很容易就超出了Int的范围了,数据类型需要改
希望能帮到你