一个100以内的阶乘的程序,高手帮我看看那里错了,编译没问题
//主函数
#include <stdio.h>
#include <iostream.h>
#include "factorial.h"
void main()
{
int i;
int num;
cout <<"请输入数据: ";
cin >>num;
factor fac;
for (i=2;i<=num;i++) fac.mul(i);
fac.display();
}
//factorial.h
class factor
{
public:
factor();
void mul(int x);
void display();
private:
int len;
int a[201];
};
//factorial.cpp
#include <stdio.h>
#include <iostream.h>
#include "factorial.h"
void factor::mul(int x) /*乘法过程*/
{
int i;
for (i=1;i<=len;i++) a[i]*=x; /*一位一位的乘*/
for (i=1;i<=len+1;i++) /*进位*/
{
a[i+1]+=a[i]/10;
a[i]%=10;
}
len+=2; /*计算新的数字长度*/
while (a[len]==0) len--;
}
void factor::display() /*输出数字*/
{
int i;
for (i=len;i>0;i--) cout<<a[i];
}
factor::factor()
{
for (int k=0;k<=201;k++) a[k]=0; /*初始化赋*/
len=1;
a[1]=1;
}