类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
我写的求阶乘,但无法运行。DX看看怎么回事。
# include<iostream>
using namespace std;
int main()
{
int n;
int My_fun[n];
int i;
for(i=0;i<n;i++)
My_fun[i]=i*My_fun[i-1];
cout<<i<<" i= "<<My_fun[i]<<"\n";
cin<<n;
cin.get();
cin.get();
return 0;
}
网友回答:
My_fun[i]=i*My_fun[i-1];
当i=0时My_fun[i-1]未定义。
int n;
int My_fun[n]; ------------->不能这样声明数组啊
n又不是const int
ftkghost说的对,在编译期间就需要指出数组的大小,不能在运行时输入一个数字来指定大小,c++不支持。
求阶乘吗?最简单的办法是:
#include<iostream.h>
main()
{
long s=1;
int n;
cin>>n;
for(int i=1;i<=n;i++)
s*=n;
cout<<s<<endl;
}
递归最好了:
main()
{
int n;
int rel;
cin>>n;
rel=dd(n);
cout<<rel<<endl;
}
dd(int n)
{
int res;
if(n==1)
return res;
else
res*=dd(n-1);
}