用c++编写程序求n! 请问我的程序错在哪里,请帮忙改正一下。感激不尽。 #include<ios

2025-02-24 18:37:16
推荐回答(3个)
回答1:

#include  // 标准写法

using namespace std; // 不申明命名空间 下面得写成 std::cout std::endl std::cin

int fac(int n);
//void fac(int n); // 仅返回值类型不同不能重载
//void main() // 下面是标准写法
int main(void)
{
    int a,b;
    cin>>b;
    a=fac(b);
    cout<    return 0; // 标准写法
}

//void fac(int n) // 返回值是void 你怎么 return s
int fac(int n)
{
    //int n,s,i; // n 已经是此函数的形参 不能重复定义
    int s,i;
    s=1;
    for(i=1;i<=n;i++)
    {
     s*=i;
    }
    return s;
}

回答2:

#include

int fac(int n);
// void fac(int n); 仅仅是返回值不一样不能成为重载
void main() {
int a,b;
cin>>b;
a=fac(b);
cout<}
int fac(int n)
{
int s,i; //int n,s,i; //n是函数的参数,不能再进行定义了。
s=1;
for(i=1;i<=n;i++) {
s*=i; } //这里少个大括号

return s;
}

回答3:

函数必须和原型一致,有返回值就不能声明为void
int fac(int n)
{
int s(1), i(1); //直接初始化可以省些代码写作
for (; i <= n; i++)
s *= i;
return s;
}